SMAHR00200_검사결과관리[종합건진].xrw 127 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMAHR01000.xrw
  4. * 설 명 : 검사결과관리[종합건진]
  5. * 설 계 자 : 손주연
  6. * 작 성 자 : 손주연
  7. * 작 성 일 : 2007.09.25
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  12. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  13. <xhtml:head>
  14. <xhtml:title>검사결과관리[종합건진]</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <acptlst>
  20. <item>
  21. <sel/>
  22. <hngnm/>
  23. <pid/>
  24. <sex/>
  25. <statflag/>
  26. <inqrprntflag/>
  27. <ordtm/>
  28. <waitstarttm/>
  29. <engnm/>
  30. <pkgnm/>
  31. <orddd/>
  32. <sex/>
  33. <age/>
  34. <cmpynm/>
  35. <rgstno1/>
  36. <rgstno2/>
  37. <cmpycd/>
  38. <pkgcd/>
  39. <rsrvdd/>
  40. <rsrvno/>
  41. <cretno/>
  42. <orddeptcd/>
  43. <healexamflag/>
  44. <healexamdetlflag/>
  45. <remcnts/>
  46. <inqrprntflag/>
  47. <hopedd/>
  48. </item>
  49. </acptlst>
  50. <acptinfo>
  51. <item>
  52. <pid/>
  53. <hngnm/>
  54. <rgstno1/>
  55. <rgstno2/>
  56. <sex/>
  57. <age/>
  58. <cmpycd/>
  59. <cmpynm/>
  60. <pkgcd/>
  61. <pkgnm/>
  62. <schlgrde/>
  63. <clsid/>
  64. <stuid/>
  65. <plceflag/>
  66. <orddd/>
  67. <judgdd/>
  68. <judgdrid/>
  69. <drnm/>
  70. <reexamfg/>
  71. <remcnts/>
  72. <rsltremcnts/>
  73. <statflag/>
  74. <healexamdetlflag/>
  75. <rsrvdd/>
  76. <rsrvno/>
  77. <cretno/>
  78. <orddd/>
  79. <inqrprntflag/>
  80. <assorsltcnts/>
  81. <hopedd/>
  82. </item>
  83. <rsltlst>
  84. <item>
  85. <testroomcd/>
  86. <reptprntgrupcd/>
  87. <testnm/>
  88. <testrsltcnts>
  89. </testrsltcnts>
  90. <judgrsltcnts/>
  91. <outtestrsltcnts/>
  92. <stndval/>
  93. <rsltunit/>
  94. <prcpdd/>
  95. <execprcpuniqno/>
  96. <prcpno/>
  97. <testcd/>
  98. <rsltflag/>
  99. <remcnts/>
  100. <assorsltcnts/>
  101. <judgcd/>
  102. <inptflag/>
  103. <judgmark/>
  104. <choirslt>
  105. <item/>
  106. </choirslt>
  107. <refh/>
  108. <refl/>
  109. </item>
  110. <itemtext>
  111. <testnm/>
  112. <testrsltcnts>
  113. </testrsltcnts>
  114. <prcpdd/>
  115. <execprcpuniqno/>
  116. <prcpno/>
  117. <testcd/>
  118. <outtestrsltcnts/>
  119. <rsltflag/>
  120. <remcnts/>
  121. <assorsltcnts/>
  122. <judgcd/>
  123. <judgrsltcnts/>
  124. <inptflag/>
  125. <judgmark/>
  126. <testroomcd/>
  127. </itemtext>
  128. </rsltlst>
  129. <inqrlst>
  130. <item>
  131. <inqrcd/>
  132. <inqrnm/>
  133. <answcd/>
  134. <answcnts/>
  135. <remcnts/>
  136. <answflag/>
  137. <inptflag/>
  138. <inqrflag/>
  139. </item>
  140. </inqrlst>
  141. </acptinfo>
  142. <tempinfo>
  143. <rslttext>
  144. <rsltcnts/>
  145. <rslt_idx/>
  146. <rslt_col/>
  147. <rslt_testcd/>
  148. <rsltexmpcnts>
  149. <item/>
  150. </rsltexmpcnts>
  151. </rslttext>
  152. <choilst>
  153. <item3>
  154. <sel/>
  155. <rsltcd/>
  156. <rsltnm/>
  157. </item3>
  158. </choilst>
  159. <assorsltlst>
  160. <itemasso>
  161. <sel/>
  162. <rsltcd/>
  163. <rsltnm/>
  164. </itemasso>
  165. </assorsltlst>
  166. <anslst>
  167. <item>
  168. <answcd/>
  169. <answcnts/>
  170. <reminptyn/>
  171. </item>
  172. </anslst>
  173. <answcd/>
  174. </tempinfo>
  175. </main>
  176. <send>
  177. <srchhealexamdetlflag/>
  178. <srchfromdd/>
  179. <srchtodd/>
  180. <srchcmpycd/>
  181. <srchcmpynm/>
  182. <srchpkgcd/>
  183. <srchpkgnm/>
  184. <srchpid2/>
  185. <srchpnm/>
  186. <srchroomcd/>
  187. <srchinstcd/>
  188. <srchhealexamflag/>
  189. <srchtestcd2/>
  190. <srchrsltflag/>
  191. <srchsex/>
  192. <save>
  193. <healexamflag/>
  194. <healexamdetlflag/>
  195. <rsrvdd/>
  196. <rsrvno/>
  197. <pid/>
  198. <orddd/>
  199. <cretno/>
  200. <pkgcd/>
  201. <saverslt/>
  202. <savetext/>
  203. <saveinqr/>
  204. <inqrprntflag/>
  205. </save>
  206. <srchorddd/>
  207. <srchcretno/>
  208. <srchrsrvdd/>
  209. <srchrsrvno/>
  210. <srchpid/>
  211. <srchinqrflag/>
  212. <srchhopedd/>
  213. <srchstatfg>G</srchstatfg>
  214. <saveout>
  215. <pid/>
  216. <orddd/>
  217. <cretno/>
  218. <healexamflag/>
  219. <rsrvdd/>
  220. <rsrvno/>
  221. <healexamdetlflag/>
  222. <instcd/>
  223. <hopedd/>
  224. <testcd/>
  225. </saveout>
  226. <iemr>
  227. <pid/>
  228. <orddeptcd/>
  229. <indd/>
  230. <docucd/>
  231. <ioflag/>
  232. <pagetot/>
  233. <cmc_spcid/>
  234. <cmc_orddate/>
  235. <cmc_orderseqno/>
  236. <treatno/>
  237. </iemr>
  238. <srchuserid/>
  239. <srchdeptcd/>
  240. <srchasischk/>
  241. <saveallout/>
  242. <srchhealexamplacecd/>
  243. </send>
  244. <init>
  245. <baseinfo>
  246. <choiflaglst/>
  247. <hedetlflaglst/>
  248. <rslttypelst/>
  249. <plceflag/>
  250. <pamcdlst>
  251. <uncocdlst/>
  252. <disccdlst/>
  253. </pamcdlst>
  254. <inqrflag/>
  255. <drlst>
  256. <itemdr/>
  257. </drlst>
  258. <statlst/>
  259. <rptgroup/>
  260. <healexamplacelst/>
  261. <calcodelst/>
  262. </baseinfo>
  263. <room>
  264. <roomlst/>
  265. </room>
  266. <authlst>
  267. <auth>
  268. <basecd/>
  269. <testroomcd/>
  270. </auth>
  271. </authlst>
  272. <send>
  273. <srchhealexamdetlflag/>
  274. <srchpid2/>
  275. <srchpnm/>
  276. <srchroomcd/>
  277. <srchfromdd/>
  278. <srchstatfg>A</srchstatfg>
  279. <srchasischk/>
  280. <srchhealexamplacecd/>
  281. </send>
  282. <calclst/>
  283. </init>
  284. <hidden/>
  285. <temp>
  286. <tempexmp>
  287. <itemexmp>
  288. <chk/>
  289. <rsltcd/>
  290. <rsltnm/>
  291. </itemexmp>
  292. </tempexmp>
  293. <popupmenu>
  294. <item>
  295. <name>선택</name>
  296. <func>fCheck</func>
  297. </item>
  298. <item>
  299. <name>선택취소</name>
  300. <func>fCnclCheck</func>
  301. </item>
  302. </popupmenu>
  303. <rsltvalue/>
  304. </temp>
  305. </root>
  306. </instance>
  307. <submission id="TRZBC00101"/>
  308. <submission id="TRAHA00001"/>
  309. <submission id="TRAHR01001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/acptlst"/>
  310. <submission id="TRAHB01502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/room/roomlst"/>
  311. <submission id="TRAHA00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/baseinfo/pamcdlst"/>
  312. <submission id="TRAHB00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/tempinfo/choilst"/>
  313. <submission id="TRAHA00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/patinfo"/>
  314. <bind id="bind_rslt" ref="/root/main/rsltlst/item/testrsltcnts" readonly="../rsltflag=&quot;O&quot;"/>
  315. <submission id="TRAHB00604" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/baseinfo/item"/>
  316. <submission id="TRAHB00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/tempinfo/anslst"/>
  317. <submission id="TRAHB01504" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/baseinfo/drlst"/>
  318. <submission id="TRAHB00107" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/tempinfo/assorsltlst"/>
  319. <submission id="TRAHR00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/acptinfo/rsltlst"/>
  320. <submission id="TXAHR00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" replace="instance" resultref="/root/hidden"/>
  321. <submission id="TXAHR00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/saveout" replace="instance" resultref="/root/hidden"/>
  322. <submission id="TXAHR00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/saveallout" replace="instance" resultref="/root/hidden"/>
  323. <submission id="TXAHR00204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/saverslt" replace="instance" resultref="/root/hidden"/>
  324. <submission id="TRAHR01003" method="post" ref="/root/send" resultref="/root/main/acptinfo/inqrlst"/>
  325. <submission id="TRAHB01202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/authlst"/>
  326. <submission id="TXAHR02502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/change" replace="instance" resultref="/root/hidden"/>
  327. <submission id="TXAHA04029" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/sendcmts" replace="instance" resultref="/root/tmp"/>
  328. <submission id="TXAHR00205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/saveout" replace="instance" resultref="/root/hidden"/>
  329. </model>
  330. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  331. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  332. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  333. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  334. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  335. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  336. <script type="javascript" src="../../../com/pacsweb/js/ZEP001.js"/>
  337. <script type="javascript" src="../../../ast/examcureweb/js/AEZ0001.js"/>
  338. <script type="javascript" src="../../../ast/healexamweb/js/AHA001.js"/>
  339. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  340. <script type="javascript" src="../../../ast/healthexambaseweb/js/healcombolist.js"/>
  341. <script type="javascript" ev:event="xforms-ready">
  342. <![CDATA[
  343. healGetCodeList( new Array("S600", "S230"), new Array("/root/init/baseinfo/healexamplacelst", "/root/init/baseinfo/calcodelst"));
  344. fGetBasicCdList();
  345. fSrchInit();
  346. fInit(false);
  347. if(checkOpener()){
  348. m_vHealexamflag = opener.javascript.getParameter("SMAHR00200_PARAM1");
  349. m_vHealexamdetlflag = opener.javascript.getParameter("SMAHR00200_PARAM2");
  350. sPid = opener.javascript.getParameter("SMAHR00200_PARAM3");
  351. m_vsrchHopedd = opener.javascript.getParameter("SMAHR00200_PARAM4");
  352. if(sPid != ""){
  353. var examflag= m_vHealexamflag.substr(0, 1);
  354. model.makeValue("/root/init/send/srchpid2" , sPid);
  355. model.makeValue("/root/init/send/srchhealexamflag" , m_vHealexamflag);
  356. model.makeValue("/root/init/send/srchhealexamdetlflag" , m_vHealexamdetlflag);
  357. model.makeValue("/root/init/send/srchfromdd" , m_vsrchHopedd);
  358. }
  359. }
  360. fGetRsltPatList(); //결과입력대상자 가져오기
  361. //팝업일 경우 조회된 환자가 있을경우 첫번째 환자상세 정보 조회
  362. if( checkOpener()){
  363. var patCnt = grd_acptlst.rows;
  364. if(patCnt > 1) {
  365. grd_acptlst.row = 1;
  366. grp_textrslt.visible = false;
  367. fGetRsltInfo(); //결과내역 조회
  368. var mergeArr = new Array();
  369. mergeArr[0] = grd_rsltlst.colRef("reptprntgrupcd");
  370. fgridMergeRow(grd_rsltlst , mergeArr);
  371. model.makeValue("/root/temp/grd_acptlstno", grd_acptlst.row);
  372. //화면상단정보 설정
  373. var sPid = model.getValue("/root/main/acptinfo/item/pid" );
  374. var sOrddd = model.getValue("/root/main/acptinfo/item/orddd" );
  375. var iCretno = model.getValue("/root/main/acptinfo/item/cretno" );
  376. if((sPid != "") && (sOrddd != "") && (iCretno != "") && (iCretno != "0")){
  377. ahafSetScreenTopPatInfo(sPid, sOrddd, iCretno);
  378. }
  379. }
  380. }
  381. ]]>
  382. </script>
  383. <script type="javascript">
  384. <![CDATA[
  385. var m_vHealexamflag = "C";
  386. var col_pid = 2;
  387. var col_pnm = 1;
  388. var col_rslt = 2;
  389. var col_rsltflag = 9;
  390. var col_textrslt = 2;
  391. var col_textrsltout = 3;
  392. var col_inqranswcd = 3;
  393. var col_inqranswcnts = 4;
  394. var col_inqrremcnts = 5;
  395. var col_inqranswflag = 6;
  396. var vHealexamflag = "";
  397. var RatioRow = -1;
  398. var GlobulinRow = -1;
  399. var RatioRo = -1;
  400. /**===================================================================================
  401. *초기화
  402. * bDetl => true : 건진자별 상세내역만 초기화
  403. =====================================================================================*/
  404. function fInit(bDetl){
  405. model.removeNodeset(grd_acptlst.nodeset);
  406. model.resetInstanceNode("");
  407. if( bDetl) {
  408. return ;
  409. }
  410. //검사계산코드 생성
  411. for(var i=1; i<=getNodesetCount("/root/init/baseinfo/calcodelst/S230"); i++){
  412. var cdid = model.getValue("/root/init/baseinfo/calcodelst/S230[" + i + "]/cdid");
  413. var cdnm = model.getValue("/root/init/baseinfo/calcodelst/S230[" + i + "]/cdnm");
  414. if(cdid != ""){
  415. model.makeValue("/root/init/calclst/" + cdid , cdnm);
  416. }
  417. }
  418. model.resetInstanceNode("/root/main/info/item");
  419. model.removeNodeset(grd_rsltlst.nodeset);
  420. model.removeNodeset(grd_rslttextlst.nodeset);
  421. model.refresh();
  422. }
  423. function fgridMergeRow(vGrd, vCol){
  424. vGrd.mergeCells = "bycol" ;
  425. for(var i=0; i < vGrd.cols; i++) {
  426. vGrd.mergeCol(i) = false;
  427. }
  428. for(var j=0; j < vCol.length; j++) {
  429. vGrd.mergeCol(vCol[j]) = true;
  430. }
  431. }
  432. /**===================================================================================
  433. ** 조회조건 초기화
  434. =====================================================================================*/
  435. function fSrchInit(){
  436. cmb_srchhealexamdetlflag.refresh();
  437. //cmb_srchhealexamdetlflag.select(0);
  438. var cur_date = getCurrentDate();
  439. model.setValue(ipt_srchfromdd.attribute("ref") , cur_date);
  440. //model.setValue(ipt_srchtodd.attribute("ref") , cur_date);
  441. }
  442. function fgrdImage(grd_nm){
  443. var cnt = grd_nm.rows;
  444. for(var i=1; i<=cnt; i++){
  445. if(grd_nm.valueMatrix(i,grd_nm.colRef("rsltflag")) == "O"){
  446. grd_nm.cellstyle("background-image", i, 5) = "../../../ast/healexamweb/image/si.bmp"
  447. grd_nm.cellstyle("background-position", i, 5) = "center center"
  448. }
  449. }
  450. }
  451. /**===================================================================================
  452. *기본코드 내역 가져오기
  453. =====================================================================================*/
  454. function fGetBasicCdList(){
  455. vHealexamflag = fGetHealExamFlag();
  456. openLoadingBar("기초정보 ") ;//처리중 화면을 오픈한다.
  457. zbcfGetCodeList(new Array("A0069", "A0066","A0110","A0106", "A0107","A0070")
  458. , new Array( "/root/init/baseinfo/hedetlflaglst"
  459. , "/root/init/baseinfo/rslttypelst"
  460. , "/root/init/baseinfo/plceflag"
  461. , "/root/init/baseinfo/inqrflag"
  462. , "/root/init/baseinfo/statlst"
  463. , "/root/init/baseinfo/hedetlflaglst"));
  464. submit("TRZBC00101");
  465. var vHealExamDetlFg = fGetHealExamDetlFlag();
  466. var sDetlFg = "/root/init/baseinfo/hedetlflaglst/A0069";
  467. var nodelist = instance1.selectNodes(sDetlFg);
  468. if(nodelist.length > 0){
  469. cmb_srchhealexamdetlflag.value = vHealExamDetlFg;
  470. }
  471. model.makeValue("/root/init/send/srchhealexamdetlflag" , vHealExamDetlFg);
  472. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  473. /* 종합검진 결과관리에서 검진구분에 공단검진 조회조건 포함되던 부분 주석처리 - 2012.10.04
  474. var cnt = getNodesetCount("/root/init/baseinfo/hedetlflaglst/A0070");
  475. for (var i=0;i<cnt;i++){
  476. var grCd = model.getValue("/root/init/baseinfo/hedetlflaglst/A0070[" + i+"]/cdid");
  477. var grNm = model.getValue("/root/init/baseinfo/hedetlflaglst/A0070[" + i+"]/cdnm");
  478. if(grNm !=""){
  479. model.makeValue("/root/init/baseinfo/hedetlflaglst/A0069["+i+2+"]/cdid" , grCd);
  480. model.makeValue("/root/init/baseinfo/hedetlflaglst/A0069["+i+2+"]/cdnm" , grNm);
  481. }
  482. }
  483. */
  484. submit("TRAHB01502");
  485. /*판정의조회
  486. model.makeNode("/root/send/srchcond" );
  487. model.setValue("/root/send/srchcond", "J");
  488. submit("TRAHB01504");
  489. */
  490. closeLoadingBar();
  491. }
  492. /**===================================================================================
  493. *사용자 부서 정보
  494. =====================================================================================*/
  495. function fSetSuppDeptcd() {
  496. var dutplcecd = getUserInfo("dutplcecd");
  497. //var selectplcecd = getScreenPrestDeptCd();
  498. model.setValue("/root/send/srchdeptcd" , dutplcecd);
  499. }
  500. /**===================================================================================
  501. *로그인시 권한등록된 검사실 정보 조회
  502. =====================================================================================*/
  503. function fGetAuthTestRoom() {
  504. fSetSuppDeptcd();
  505. model.setValue("/root/send/srchuserid" , getUserId());
  506. submit("TRAHB01202");
  507. }
  508. /**===================================================================================
  509. *권한이 등록된 결과만 등록가능하고 체크
  510. =====================================================================================*/
  511. function fChkAuthTestRoom() {
  512. var nodeList = instance1.selectNodes("/root/init/authlst/auth");
  513. for(var i=1; i <= nodeList.length; i++) {
  514. var testroomcd = model.getValue("/root/init/authlst/auth[" + i + "]/testroomcd");
  515. for(var j=1; j<= grd_rsltlst.rows; j++) {
  516. var roomcd_one = model.getValue("/root/main/acptinfo/rsltlst/item[" + j + "]/testroomcd");
  517. if( roomcd_one == testroomcd ) {
  518. grd_rsltlst.isReadOnly(j,grd_rsltlst.colRef("testrsltcnts")) = false;
  519. }
  520. }
  521. for(var x=1; x<= grd_rslttextlst.rows; x++) {
  522. var roomcd_two = model.getValue("/root/main/acptinfo/rsltlst/itemtext[" + x + "]/testroomcd");
  523. if(roomcd_two == testroomcd ) {
  524. grd_rslttextlst.isReadOnly(x,grd_rslttextlst.colRef("testrsltcnts")) = false;
  525. }
  526. }
  527. }
  528. }
  529. /**===================================================================================
  530. *결과입력대상자 가져오기
  531. *건진구분/건진일자/검사실/환자id/단체코드/패키지코드별 조회
  532. =====================================================================================*/
  533. function fGetRsltPatList(){
  534. openLoadingBar("결과입력 대상 건진자리스트");
  535. model.removeNodeset(grd_acptlst.nodeset);
  536. model.removeNodeset(grd_rsltlst.nodeset);
  537. model.removeNodeset(grd_rslttextlst.nodeset);
  538. model.resetInstanceNode("/root/send");
  539. var vHealExamDetlFg = fGetHealExamDetlFlag();
  540. model.setValue("/root/send/srchhealexamdetlflag" , model.getValue("/root/init/send/srchhealexamdetlflag"));
  541. model.setValue("/root/send/srchpid" , model.getValue("/root/init/send/srchpid2"));
  542. model.setValue("/root/send/srchpnm" , model.getValue("/root/init/send/srchpnm"));
  543. model.setValue("/root/send/srchroomcd" , model.getValue("/root/init/send/srchroomcd"));
  544. model.setValue("/root/send/srchfromdd" , model.getValue("/root/init/send/srchfromdd"));
  545. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  546. model.setValue("/root/send/srchhealexamflag" , fGetHealExamFlag());
  547. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  548. model.makeValue("/root/send/srchhealexamflag" , examflag);
  549. model.makeValue("/root/send/srchhealexamplacecd" , combo3.value);
  550. model.setValue("/root/send/srchtodd" , model.getValue("/root/send/srchfromdd"));
  551. model.makeValue("/root/send/srchstatfg" , model.getValue("/root/init/send/srchstatfg"));
  552. submit("TRAHR01001");
  553. /*2010.03.04 결과와 결과완료 상태에 따른 리스트 색변경으로 수정됨*/
  554. //fSetRsrvBackGroud(grd_acptlst, vHealExamDetlFg);
  555. grd_acptlst.rebuildStyle();
  556. for(var i=grd_acptlst.fixedRows; i<grd_acptlst.rows; i++){
  557. if(grd_acptlst.valueMatrix(i, grd_acptlst.colRef("statflag")) == "G"){
  558. if(grd_acptlst.valueMatrix(i, grd_acptlst.colRef("rsltyn")) == "Y"){
  559. grd_acptlst.rowStyle(i, "data", "background-color") = "#f8939f";
  560. }else{
  561. grd_acptlst.rowStyle(i, "data", "background-color") = "#7ffc76";
  562. }
  563. }
  564. }
  565. model.makeValue("/root/send/srchclscd", "G");
  566. model.makeValue("/root/send/srchetccd", "G10");
  567. submit("TRAHB00604");
  568. closeLoadingBar();
  569. }
  570. function fSetRsrvBackGroud(vGrd, vMode) {
  571. vGrd.rebuildStyle(); // 스타일 초기화
  572. for(var i=1; i <= vGrd.rows; i++) {
  573. var vhealexamdetlflag = vGrd.valueMatrix( i , vGrd.colRef("healexamdetlflag"));
  574. var vhealexamplacecd = vGrd.valueMatrix( i , vGrd.colRef("healexamplacecd"));
  575. if(vhealexamdetlflag != vMode) {
  576. vGrd.rowStyle(i, "data", "background-color") = "#7BE6B7";
  577. }else if (vMode == 'C03' && vhealexamplacecd =='S') {
  578. vGrd.rowStyle(i, "data", "background-color") = "#7BE6B7";
  579. }
  580. }
  581. }
  582. /**===================================================================================
  583. @desc :건진일자변경
  584. @param : vDateFg -기간구분(Y-Year, M-Month, D-Day)
  585. vTerm- 기간
  586. =====================================================================================*/
  587. function fSetOrdDD(vDateFg , vTerm){
  588. if( (vDateFg != "Y" ) && (vDateFg != "M")&& (vDateFg != "D") ) {
  589. return ;
  590. }
  591. var iTerm = parseInt(vTerm);
  592. var isDate = (model.getValue("/root/init/send/srchfromdd")).toDate().getAddDate(iTerm,vDateFg);
  593. model.setValue("/root/init/send/srchfromdd", isDate.getDateFormat('YYYYMMDD'));
  594. ipt_srchfromdd.refresh();
  595. fGetRsltPatList(); //결과입력대상자 가져오기
  596. }
  597. /**=============================================================================================================
  598. *결과 내역을 조회하기 위한 조건정보 체크
  599. =============================================================================================================*/
  600. function fCheckExamInfo(){
  601. var idx = grd_acptlst.row;
  602. if(idx < 1){
  603. //messageBox("수진자를 ", "C002");
  604. return false;
  605. }
  606. model.copyNode("/root/main/acptinfo/item", grd_acptlst.nodeset + "[" + idx + "]");
  607. //결과내역가져오기
  608. var sNode = grd_acptlst.nodeset + "[" + idx + "]/";
  609. var rsrvdd = model.getValue(sNode + "rsrvdd");
  610. var rsrvno = model.getValue(sNode + "rsrvno");
  611. var pid = model.getValue(sNode + "pid");
  612. var orddd = model.getValue(sNode + "orddd");
  613. var cretno = model.getValue(sNode + "cretno");
  614. var pkgcd = model.getValue(sNode + "pkgcd");
  615. var sex = model.getValue(sNode + "sex");
  616. var inqrprntflag = model.getValue(sNode + "inqrprntflag");
  617. var hopedd = model.getValue(sNode + "hopedd");
  618. if((pid == "") || (orddd=="") || (cretno == "") || (rsrvdd == "") || (rsrvno == "")){
  619. messageBox("유효하지 않은 데이터 입니다!", "E999");
  620. return false;
  621. }
  622. model.resetInstanceNode("/root/send");
  623. model.setValue("/root/send/srchhealexamdetlflag" , model.getValue("/root/init/send/srchhealexamdetlflag"));
  624. model.setValue("/root/send/srchpnm" , model.getValue("/root/init/send/srchpnm"));
  625. model.setValue("/root/send/srchroomcd" , model.getValue("/root/init/send/srchroomcd"));
  626. model.setValue("/root/send/srchfromdd" , model.getValue("/root/init/send/srchfromdd"));
  627. model.setValue("/root/send/srchasischk" , model.getValue("/root/init/send/srchasischk"));
  628. model.setValue("/root/send/srchrsrvdd" , rsrvdd);
  629. model.setValue("/root/send/srchrsrvno" , rsrvno);
  630. model.setValue("/root/send/srchpid" , pid);
  631. model.setValue("/root/send/srchorddd" , orddd);
  632. model.setValue("/root/send/srchcretno" , cretno);
  633. model.setValue("/root/send/srchhealexamflag" , fGetHealExamFlag());
  634. model.setValue("/root/send/srchhopedd" , hopedd);
  635. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  636. model.makeValue("/root/send/srchhealexamflag" , examflag);
  637. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  638. model.setValue("/root/send/srchpkgcd" , pkgcd);
  639. model.setValue("/root/send/srchsex" , sex);
  640. //ahafSetScreenTopPatInfo( pid , orddd , cxretno );
  641. }
  642. /**=============================================================================================================
  643. @desc : 결과내역 조회
  644. =============================================================================================================*/
  645. function fGetRsltInfo(){
  646. model.removeNodeset(grd_rsltlst.nodeset);
  647. model.removeNodeset(grd_rslttextlst.nodeset);
  648. model.resetInstanceNode("/root/main/acptinfo/item");
  649. btn_rslt.selected = true;
  650. model.toggle("case_rslt");
  651. if(fCheckExamInfo() == false){
  652. model.refresh();
  653. return;
  654. }
  655. openLoadingBar("검사결과정보");
  656. // fGetInqrCdList(); //문진내역을 조회한다. - 2012.02.20 문진표 탭 선택시 실행되도록 함.
  657. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  658. model.makeValue("/root/send/srchhealexamflag", examflag);
  659. if(submit("TRAHR00201") == true){
  660. fSetGridInitState(grd_rsltlst);
  661. fSetGridInitState(grd_rslttextlst);
  662. fSetRsltHeight(grd_rslttextlst , 50);
  663. for(var rowcnt=0; rowcnt<=grd_rsltlst.rows-1; rowcnt++){
  664. fSetJudgStat(rowcnt);
  665. }
  666. }
  667. closeLoadingBar();
  668. }
  669. /**=============================================================================================================
  670. @desc : 결과입력 grid 초기상태 setting
  671. =============================================================================================================*/
  672. function fSetGridInitState(vGrdObj){
  673. if(vGrdObj == null ) return ;
  674. vGrdObj.refresh();
  675. var cnt = vGrdObj.rows;
  676. for( var i = 1 ; i <= cnt ; i++){
  677. /*
  678. * 처음일 경우만 결과값 insert
  679. */
  680. if( model.getValue( vGrdObj.nodeset + "[" + i + "]/inptflag") == "i" && model.getValue( vGrdObj.nodeset + "[" + i + "]/rslthistseq") == 0){
  681. vGrdObj.addStatus(i, "insert");
  682. }
  683. // 기준치에 따른 색깔변경
  684. if("H" == vGrdObj.valueMatrix( i , vGrdObj.colRef("judgrsltcnts") ) ) {
  685. vGrdObj.cellStyle("background-color" , i , vGrdObj.colRef("judgrsltcnts") , i , vGrdObj.colRef("judgrsltcnts")) = "#ff7a85";
  686. }
  687. if("L" == vGrdObj.valueMatrix( i , vGrdObj.colRef("judgrsltcnts") ) ) {
  688. vGrdObj.cellStyle("background-color" , i , vGrdObj.colRef("judgrsltcnts") , i , vGrdObj.colRef("judgrsltcnts")) = "#99ccff";
  689. }
  690. }
  691. vGrdObj.refresh();
  692. }
  693. /**===================================================================================
  694. @desc : 결과입력모드 setting
  695. @param : vGrdFlag- N-숫자형결과입력GRID/T-서술형결과입력GRID
  696. ===================================================================================*/
  697. function fSetRsltInptMode(vGrdFlag, vGridObj ){
  698. grp_textrslt.visible = false;
  699. grp_choi.visible = false;
  700. //grp_asso.visible = false;
  701. var idx = vGridObj.row;
  702. if( idx < 1) return ;
  703. var vRsltFg = model.getValue(vGridObj.nodeset + "[" + idx + "]/rsltflag" );
  704. var vCode = model.getValue(vGridObj.nodeset + "[" + idx + "]/testcd" );
  705. var vRslt = model.getValue(vGridObj.nodeset + "[" + idx + "]/testrsltcnts" );
  706. if((vGrdFlag == "N") && (vGridObj.col == 4)){
  707. if (vRsltFg == "O"){
  708. //선택형
  709. // fGetRsltExmpList(vCode, vRsltFg, vRslt );
  710. }
  711. }else if((vGrdFlag == "T") && (vGridObj.col == col_textrslt)){
  712. //서술형
  713. tar_textrslt.value = vRslt;
  714. tar_textrslt.disabled = false;
  715. btn_selrsltexmpcnts.visible = true;
  716. grp_textrslt.attribute("left") = parseInt( grd_rsltlst.attribute("left") );
  717. grp_textrslt.attribute("top") = parseInt( grd_rsltlst.attribute("top") ) - 20 ;
  718. grp_textrslt.attribute("height") = parseInt( grd_rsltlst.attribute("height") ) + 20;
  719. // tar_textrslt.attribute("height") = parseInt( grd_rsltlst.attribute("height") ) - 20;
  720. //fGetRsltGrpTop(grp_textrslt, vGridObj) ;
  721. model.setValue("/root/main/tempinfo/rslttext/rslt_col" , col_textrslt);
  722. model.setValue("/root/main/tempinfo/rslttext/rslt_idx" , idx );
  723. model.setValue("/root/main/tempinfo/rslttext/rslt_testcd" , vCode); //검사코드별 서술형 결과예문 조회를 위해...
  724. grp_textrslt.visible = true;
  725. fGetRsltExmpCnts();
  726. return ;
  727. }else if ( (vGrdFlag == "T") && (vGridObj.col == col_textrsltout)){
  728. //서술형
  729. tar_textrslt.value = model.getValue(vGridObj.nodeset + "[" + idx + "]/outtestrsltcnts" );
  730. tar_textrslt.disabled = true;
  731. btn_selrsltexmpcnts.visible = false;
  732. //fGetRsltGrpTop(grp_textrslt, vGridObj) ;
  733. model.setValue("/root/main/tempinfo/rslttext/rslt_col", col_textrsltout);
  734. model.setValue("/root/main/tempinfo/rslttext/rslt_idx", idx );
  735. grp_textrslt.visible = true;
  736. return;
  737. }
  738. if( vGridObj.colType(vGridObj.col) == "input" ){
  739. grd_rsltlst.editCell();
  740. }
  741. }
  742. /**===================================================================================
  743. *선택형 결과조회
  744. *IN : 검사코드/결과구분
  745. ===================================================================================*/
  746. function fGetRsltExmpList( vTestcd, vRsltFlag, vRslt ){
  747. model.removeNodeset("/root/main/tempinfo/choilst/item3");
  748. model.setValue("/root/send/srchtestcd2" , vTestcd) ;
  749. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  750. model.setValue("/root/send/srchhealexamflag" , fGetHealExamFlag());
  751. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  752. model.makeValue("/root/send/srchhealexamflag" , examflag);
  753. model.setValue("/root/send/srchrsltflag" , vRsltFlag);
  754. var nd = null;
  755. var cnt = 0;
  756. var i = 0 ;
  757. var k = 0 ;
  758. //선택형 결과
  759. if((vRsltFlag == "O") && (submit("TRAHB00103") == true)){
  760. nd = instance1.selectNodes("/root/main/tempinfo/choilst/item3");
  761. cnt = nd.length ;
  762. if(cnt > 0){
  763. var vTmp = vRslt.split("\n");
  764. for(var j=0 ; i<vTmp.length; j++){
  765. for(i=0, k=0; i<cnt; i++){
  766. if(nd.item(i).rsltcd.text == vTmp[j]){
  767. k = i+1;
  768. model.setValue("/root/main/tempinfo/choilst/item3[" + k + "]/sel", "Y");
  769. }
  770. }
  771. }
  772. fGetRsltGrpTop( grp_choi , grd_rsltlst) ;
  773. grp_choi.visible = true;
  774. }
  775. }
  776. /*
  777. else //공단 결과
  778. if( (vRsltFlag == "A") && (submit("TRAHB00107") == true ) ){
  779. nd = instance1.selectNodes("/root/main/tempinfo/assorsltlst/itemasso");
  780. cnt = nd.length;
  781. if( cnt > 0){
  782. fGetRsltGrpTop(grp_asso) ;
  783. grp_asso.visible = true;
  784. }
  785. grd_rsltlst.col = col_assorslt;
  786. grd_rsltlst.editCell();
  787. }
  788. */
  789. }
  790. /**
  791. * 선택형 결과 및 공단결과/서술형 결과 입력 group box를 띄울때 box의 적합한 위치를 가져온다.
  792. */
  793. function fGetRsltGrpTop(vGrpObj , vGridObj){
  794. if( vGrpObj == null ) return ;
  795. var grp_height = parseInt(vGrpObj.attribute("height")) ;
  796. //결과grid bottom
  797. var rslt_height = parseInt(swt_rslt.attribute("height")) ;
  798. var rslt_top = 0 ;
  799. var grid_rowheight = 0;
  800. var rslt_right = parseInt(vGrpObj.attribute("width")) + parseInt(event.clientX) - parseInt(swt_rslt.attribute("left")) ;
  801. if(vGridObj != null){
  802. rslt_height = parseInt( vGridObj.attribute("height") ) ;
  803. rslt_top = parseInt( vGridObj.attribute("top") ) ;
  804. grid_rowheight = parseInt( vGridObj.rowheight(1) );
  805. rslt_right = parseInt( vGridObj.attribute("left")) + parseInt(vGridObj.attribute("width"));
  806. }
  807. var rslt_bottom = rslt_top + rslt_height ;
  808. // group object의 top
  809. var grp_top = parseInt( event.clientY) - parseInt(swt_rslt.attribute("top")) ;
  810. var grp_bottom = parseInt(grp_top) + parseInt(grp_height );
  811. if(grp_bottom > rslt_bottom){
  812. grp_top = grp_top - grp_height - grid_rowheight ;
  813. }
  814. vGrpObj.attribute("top") = grp_top;
  815. vGrpObj.attribute("left") = rslt_right - parseInt(vGrpObj.attribute("width"));
  816. }
  817. /**
  818. @desc : 선택형 결과입력
  819. */
  820. function fAddRsltChoi(){
  821. var idx = grd_rsltlst.row ;
  822. if( idx < 1) return ;
  823. var oldrslt = model.getValue(grd_rsltlst.nodeset + "[" + idx + "]/rsltcnts" );
  824. if( grd_choilst.col != 1 ) return ;
  825. var i = grd_choilst.row;
  826. if( i < 1) return ;
  827. var nodeList = instance1.selectNodes(grd_choilst.nodeset +"[sel='Y']");
  828. var rslt = "";
  829. var node = null;
  830. if( nodeList.length > 0 ){
  831. for( var j = 0 ; j < nodeList.length ; j++){
  832. rslt = rslt + nodeList.item(j).rsltcd.text + ":" + nodeList.item(j).rsltnm.text + "\n" ;
  833. }
  834. }
  835. model.setValue(grd_rsltlst.nodeset + "[" + idx + "]/testrsltcnts", rslt );
  836. grd_rsltlst.refresh();
  837. }
  838. /**===================================================================================
  839. @desc : 결과입력
  840. @param : 결과내역
  841. ===================================================================================*/
  842. function fSaveColgRslt(){
  843. var vSaveNum = getGridUpdateData(grd_rsltlst);
  844. var vSaveText = getGridUpdateData(grd_rslttextlst);
  845. if( (vSaveNum == "") && (vSaveText == "") ) {
  846. messageBox("저장할 내역이 ", "I004");
  847. return ;
  848. }
  849. var vHfg = fGetHealExamFlag();
  850. if( vHfg == "" ) {
  851. messageBox("건진구분이 ", "I004");
  852. return ;
  853. }
  854. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  855. model.makeValue("/root/send/srchhealexamflag",examflag );
  856. model.resetInstanceNode("/root/send/save" );
  857. var vRsrvdd = model.getValue("/root/main/acptinfo/item/rsrvdd") ;
  858. var vRsrvno = model.getValue("/root/main/acptinfo/item/rsrvno") ;
  859. var vOrddd = model.getValue("/root/main/acptinfo/item/orddd") ;
  860. var vCretno = model.getValue("/root/main/acptinfo/item/cretno") ;
  861. var vPid = model.getValue("/root/main/acptinfo/item/pid") ;
  862. if((vRsrvdd == "") || (vRsrvno == "") || (vPid == "") || (vOrddd == "") || (vCretno == "")){
  863. messageBox("건진정보가 ", "I004");
  864. return ;
  865. }
  866. model.setValue("/root/send/save/healexamflag" , vHfg);
  867. model.setValue("/root/send/save/healexamdetlflag" , model.getValue("/root/init/send/srchhealexamdetlflag"));
  868. model.setValue("/root/send/save/rsrvdd" , vRsrvdd);
  869. model.setValue("/root/send/save/rsrvno" , vRsrvno);
  870. model.setValue("/root/send/save/pid" , vPid);
  871. model.setValue("/root/send/save/orddd" , vOrddd);
  872. model.setValue("/root/send/save/cretno" , vCretno);
  873. model.setValue("/root/send/save/pkgcd" , model.getValue("/root/main/acptinfo/item/pkgcd"));
  874. model.makeNode("/root/send/save/saverslt");
  875. model.setValue("/root/send/save/saverslt" , grd_rsltlst.getUpdateData());
  876. model.makeNode("/root/send/save/savetext");
  877. model.setValue("/root/send/save/savetext" , grd_rslttextlst.getUpdateData());
  878. openLoadingBar("검사결과정보 저장중 ");
  879. var ret = submit("TXAHR00201");
  880. closeLoadingBar();
  881. if( ret == true ){
  882. fGetRsltInfo(); //결과내역 조회
  883. }
  884. }
  885. /**=============================================================================================================
  886. *입력결과 저장 후 조회
  887. =================================================================================================================*/
  888. function fSaveRslt(vMod) {
  889. var vSaveNum = "";
  890. var vSaveText = "";
  891. var vSaveInqr = "";
  892. var vSaveInqrFlag = "N";
  893. var vHfg = fGetHealExamFlag();
  894. if( vHfg == "" ) {
  895. messageBox("건진구분이 ", "I004");
  896. return ;
  897. }
  898. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  899. model.makeValue("/root/send/srchhealexamflag",examflag );
  900. var vRsrvdd = model.getValue("/root/main/acptinfo/item/rsrvdd") ;
  901. var vRsrvno = model.getValue("/root/main/acptinfo/item/rsrvno") ;
  902. var vOrddd = model.getValue("/root/main/acptinfo/item/orddd") ;
  903. var vCretno = model.getValue("/root/main/acptinfo/item/cretno") ;
  904. var vPid = model.getValue("/root/main/acptinfo/item/pid") ;
  905. if((vRsrvdd == "") || (vRsrvno == "") || (vPid == "") || (vOrddd == "") || (vCretno == "")){
  906. messageBox("건진정보가 ", "I004");
  907. return ;
  908. }
  909. model.makeValue("/root/send/save/healexamflag" , vHfg );
  910. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  911. model.makeValue("/root/send/srchhealexamflag" , examflag );
  912. model.makeValue("/root/send/healexamflag",examflag );
  913. model.makeValue("/root/send/save/srchhealexamflag" , examflag );
  914. model.makeValue("/root/send/save/healexamflag" , examflag );
  915. model.makeValue("/root/send/save/healexamdetlflag" , model.getValue("/root/init/send/srchhealexamdetlflag") );
  916. model.makeValue("/root/send/save/rsrvdd" , vRsrvdd);
  917. model.makeValue("/root/send/save/rsrvno" , vRsrvno);
  918. model.makeValue("/root/send/save/pid" , vPid);
  919. model.makeValue("/root/send/save/orddd" , vOrddd );
  920. model.makeValue("/root/send/save/cretno" , vCretno );
  921. model.makeValue("/root/send/save/pkgcd" , model.getValue("/root/main/acptinfo/item/pkgcd"));
  922. if(vMod == "A" || vMod == "R"){
  923. vSaveNum = getGridUpdateData(grd_rsltlst);
  924. vSaveText = getGridUpdateData(grd_rslttextlst);
  925. if((vSaveNum == "") && (vSaveText == "")){
  926. messageBox("저장할 내역이 ", "I004");
  927. return ;
  928. }
  929. model.makeNode("/root/send/save/saverslt");
  930. model.makeNode("/root/send/save/savetext");
  931. model.setValue("/root/send/save/saverslt" , vSaveNum);
  932. model.setValue("/root/send/save/savetext" , vSaveText);
  933. }
  934. if(vMod == "A" || vMod == "I"){
  935. vSaveInqr = getGridUpdateData(grd_inqrlst);
  936. vSaveInqrFlag = model.getValue("/root/main/acptinfo/item/inqrprntflag");
  937. /*
  938. if( (vSaveInqr == "") ) {
  939. messageBox("저장할 내역이 ", "I004");
  940. return ;
  941. }
  942. */
  943. model.makeValue("/root/send/save/saveinqr", vSaveInqr);
  944. model.makeValue("/root/send/save/inqrprntflag", vSaveInqrFlag);
  945. }
  946. openLoadingBar("결과 저장 중입니다..");
  947. var ret = submit("TXAHR00201");
  948. closeLoadingBar();
  949. if(ret == true ){
  950. fGetRsltInfo(); //결과내역 조회
  951. //리스트의 문진출력구분상태 update
  952. var idx = grd_acptlst.row;
  953. model.setValue("/root/main/acptlst/item[" + idx+ "]/inqrprntflag", vSaveInqrFlag);
  954. model.setValue("/root/main/acptinfo/item/inqrprntflag", vSaveInqrFlag);
  955. fChkAuthTestRoom();
  956. }
  957. }
  958. /**===================================================================================
  959. @desc : 결과예문가져오기(검사코드별)
  960. @param : 결과예문내역
  961. ===================================================================================*/
  962. function fGetRsltExmpCnts(){
  963. model.removeNodeset("/root/main/tempinfo/choilst/item3");
  964. model.setValue("/root/send/srchhealexamflag" , fGetHealExamFlag() ); //건진구분
  965. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  966. model.makeValue("/root/send/srchhealexamflag",examflag );
  967. model.setValue("/root/send/srchtestcd2" , model.getValue("/root/main/tempinfo/rslttext/rslt_testcd")); //검사코드
  968. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") ); //기관코드
  969. model.setValue("/root/send/srchrsltflag" , "T" ); //결과구분=>서술형결과예문
  970. openLoadingBar("검사별 서술형 결과예문정보 ") ;//처리중 화면을 오픈한다.
  971. submit("TRAHB00103");
  972. closeLoadingBar() ;//처리중 화면을 close한다.
  973. var nd = instance1.selectNodes("/root/main/tempinfo/choilst/item3");
  974. if( (nd != null ) && (nd.length > 0 ) ){
  975. // fGetRsltGrpTop(grp_rsltexmp , null );
  976. // grp_rsltexmp.visible = true;
  977. }
  978. }
  979. /**===================================================================================
  980. @desc : 선택한 결과예문내역 반영하기
  981. ===================================================================================*/
  982. function fSetRsltExmpCnts(){
  983. var idx = grd_rsltexmplst.row;
  984. if( idx < 1) return ;
  985. var cur_rsltcnts = tar_textrslt.currentText ;
  986. tar_textrslt.currentText = cur_rsltcnts + model.getValue("/root/main/tempinfo/choilst/item3[" + idx + "]/rsltnm" ) + "\n" ;
  987. }
  988. /**===================================================================================
  989. @desc : 외래결과연동 (해당 건진자에 대한 연동....)
  990. ===================================================================================*/
  991. function fGetOutRslt(){
  992. var sPid = model.getValue("/root/main/acptinfo/item/pid") ;
  993. if( sPid == "" ) return ;
  994. var sHealExamFlag = fGetHealExamFlag();
  995. var sOrddd = model.getValue("/root/main/acptinfo/item/orddd");
  996. var iCretno = model.getValue("/root/main/acptinfo/item/cretno");
  997. var examflag = model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  998. model.makeValue("/root/send/srchhealexamflag", examflag);
  999. var sRsrvdd = model.getValue("/root/main/acptinfo/item/rsrvdd");
  1000. var sRsrvno = model.getValue("/root/main/acptinfo/item/rsrvno");
  1001. var sHealExamDetlFlag = model.getValue("/root/main/acptinfo/item/healexamdetlflag");
  1002. var sHopedd = model.getValue("/root/main/acptinfo/item/hopedd");
  1003. var sSex = model.getValue("/root/main/acptinfo/item/sex");
  1004. var sStatflag = model.getValue("/root/main/acptinfo/item/statflag");
  1005. model.setValue("/root/send/saveout/pid" , sPid);
  1006. model.setValue("/root/send/saveout/orddd" , sOrddd);
  1007. model.setValue("/root/send/saveout/cretno" , iCretno);
  1008. model.setValue("/root/send/saveout/healexamflag" , sHealExamFlag);
  1009. model.setValue("/root/send/saveout/healexamdetlflag" , sHealExamDetlFlag);
  1010. model.setValue("/root/send/saveout/rsrvdd" , sRsrvdd);
  1011. model.setValue("/root/send/saveout/rsrvno" , sRsrvno);
  1012. model.setValue("/root/send/saveout/instcd" , getUserInfo("dutplceinstcd"));
  1013. model.makeValue("/root/send/saveout/hopedd" , sHopedd);
  1014. model.makeValue("/root/send/saveout/sex" , sSex);
  1015. model.makeValue("/root/send/saveout/statflag" , sStatflag);
  1016. openLoadingBar("외래결과");
  1017. var ret = submit("TXAHR00202");
  1018. closeLoadingBar();
  1019. if( ret == true ){
  1020. fGetRsltInfo(); //결과내역 조회
  1021. }
  1022. }
  1023. /**===================================================================================
  1024. @desc : 외래결과연동 (숫자형/선택형 결과)
  1025. ===================================================================================*/
  1026. function fGetAhrmRslt(){
  1027. var sPid = model.getValue("/root/main/acptinfo/item/pid") ;
  1028. if( sPid == "" ) return ;
  1029. var sHealExamFlag = fGetHealExamFlag();
  1030. var sOrddd = model.getValue("/root/main/acptinfo/item/orddd");
  1031. var iCretno = model.getValue("/root/main/acptinfo/item/cretno");
  1032. var examflag = model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  1033. model.makeValue("/root/send/srchhealexamflag", examflag);
  1034. var sRsrvdd = model.getValue("/root/main/acptinfo/item/rsrvdd");
  1035. var sRsrvno = model.getValue("/root/main/acptinfo/item/rsrvno");
  1036. var sHealExamDetlFlag = model.getValue("/root/main/acptinfo/item/healexamdetlflag");
  1037. var sHopedd = model.getValue("/root/main/acptinfo/item/hopedd");
  1038. var sSex = model.getValue("/root/main/acptinfo/item/sex");
  1039. var sStatflag = model.getValue("/root/main/acptinfo/item/statflag");
  1040. model.setValue("/root/send/saveout/pid" , sPid);
  1041. model.setValue("/root/send/saveout/orddd" , sOrddd);
  1042. model.setValue("/root/send/saveout/cretno" , iCretno);
  1043. model.setValue("/root/send/saveout/healexamflag" , sHealExamFlag);
  1044. model.setValue("/root/send/saveout/healexamdetlflag" , sHealExamDetlFlag);
  1045. model.setValue("/root/send/saveout/rsrvdd" , sRsrvdd);
  1046. model.setValue("/root/send/saveout/rsrvno" , sRsrvno);
  1047. model.setValue("/root/send/saveout/instcd" , getUserInfo("dutplceinstcd"));
  1048. model.makeValue("/root/send/saveout/hopedd" , sHopedd);
  1049. model.makeValue("/root/send/saveout/sex" , sSex);
  1050. model.makeValue("/root/send/saveout/statflag" , sStatflag);
  1051. openLoadingBar("외래숫자,선택형결과");
  1052. var ret = submit("TXAHR00205");
  1053. closeLoadingBar();
  1054. if( ret == true ){
  1055. fGetRsltInfo(); //결과내역 조회
  1056. }
  1057. }
  1058. /**=====================================================================================================================
  1059. @desc : 건진일자의 전체 외래연동결과 가져오기
  1060. =====================================================================================================================*/
  1061. function fGetAllOutRslt(){
  1062. /*
  1063. grd_acptlst.clearStatus();
  1064. for(var i=1; i < grd_acptlst.rows; i++) {
  1065. if(grd_acptlst.valueMatrix(i , grd_acptlst.colRef("sel")) == "Y") {
  1066. grd_acptlst.rowStatus(i) = 1;
  1067. }
  1068. }
  1069. var outData = grd_acptlst.getUpdateData();
  1070. if(outData == "") {
  1071. messageBox("대상자가" , "I004");
  1072. }
  1073. model.setValue("/root/send/saveallout" , outData);
  1074. openLoadingBar("외래결과 ") ;//처리중 화면을 오픈한다.
  1075. var ret = submit("TXAHR00203");
  1076. closeLoadingBar() ;//처리중 화면을 close한다.
  1077. if( ret == true ){
  1078. fGetRsltInfo(); //결과내역 조회
  1079. }
  1080. */
  1081. aezfSetCellStyle("grd_acptlst", "2", "V", "hngnm", "hngnm", "B");
  1082. var sPid = model.getValue("/root/main/acptlst/item[1]/pid");
  1083. if(sPid == ""){
  1084. alert("대상자가 존재하지 않습니다.");
  1085. return;
  1086. }
  1087. var rowcnts = grd_acptlst.rows-1;
  1088. var icnt = 0;
  1089. openLoadingBar("외래결과 [ "+rowcnts+" ]건");
  1090. //20100623 JHP 요청번호 13693 전체외래결과연동시 표준체중이 0.0으로 되는 오류 확인결과 성별을 넘겨주지 않아서 오류남. sex추가함.
  1091. for(var i=1; i<grd_acptlst.rows; i++){
  1092. var sPid = model.getValue("/root/main/acptlst/item["+i+"]/pid");
  1093. var sOrddd = model.getValue("/root/main/acptlst/item["+i+"]/orddd");
  1094. var iCretno = model.getValue("/root/main/acptlst/item["+i+"]/cretno");
  1095. var sHealExamFlag = model.getValue("/root/main/acptlst/item["+i+"]/healexamflag");
  1096. var sRsrvdd = model.getValue("/root/main/acptlst/item["+i+"]/rsrvdd");
  1097. var sRsrvno = model.getValue("/root/main/acptlst/item["+i+"]/rsrvno");
  1098. var sHealExamDetlFlag = model.getValue("/root/main/acptlst/item["+i+"]/healexamdetlflag");
  1099. var sHopedd = model.getValue("/root/main/acptlst/item["+i+"]/hopedd");
  1100. var sSex = model.getValue("/root/main/acptlst/item["+i+"]/sex"); //20100623 JHP 요청번호 13693 추가
  1101. var sStatflag = model.getValue("/root/main/acptlst/item["+i+"]/statflag");
  1102. model.setValue("/root/send/saveout/pid" , sPid);
  1103. model.setValue("/root/send/saveout/orddd" , sOrddd);
  1104. model.setValue("/root/send/saveout/cretno" , iCretno);
  1105. model.setValue("/root/send/saveout/healexamflag" , sHealExamFlag);
  1106. model.setValue("/root/send/saveout/healexamdetlflag" , sHealExamDetlFlag);
  1107. model.setValue("/root/send/saveout/rsrvdd" , sRsrvdd);
  1108. model.setValue("/root/send/saveout/rsrvno" , sRsrvno);
  1109. model.setValue("/root/send/saveout/instcd" , getUserInfo("dutplceinstcd"));
  1110. model.makeValue("/root/send/saveout/hopedd" , sHopedd);
  1111. model.makeValue("/root/send/saveout/sex" , sSex); //20100623 JHP 요청번호 13693 추가
  1112. model.makeValue("/root/send/saveout/statflag" , sStatflag);
  1113. if(submit("TXAHR00202")){
  1114. }else{
  1115. icnt = 1;
  1116. break;
  1117. }
  1118. grd_acptlst.backcoloralternate = "transparent";
  1119. grd_acptlst.cellstyle("background-color", i, grd_acptlst.colRef("hngnm")) = "#ccffcc";
  1120. grd_acptlst.cellstyle("font-weight", i, grd_acptlst.colRef("hngnm")) = "normal";
  1121. grd_acptlst.refresh();
  1122. }
  1123. if(icnt == 1){
  1124. alert("등록번호["+model.getValue("/root/send/saveout/pid")+"] 대상자에서 오류발생하였습니다.");
  1125. closeLoadingBar();
  1126. return;
  1127. }
  1128. closeLoadingBar();
  1129. }
  1130. /**=====================================================================================================================
  1131. @desc : 문진내역가져오기
  1132. =====================================================================================================================*/
  1133. function fGetInqrCdList(){
  1134. model.removeNodeset(grd_inqrlst.nodeset);
  1135. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  1136. model.setValue("/root/send/srchinqrflag" ,"T");
  1137. if(submit("TRAHR01003") == true){
  1138. grd_inqrlst.refresh();
  1139. var cnt = grd_inqrlst.rows;
  1140. for(var i=1; i<= cnt; i++){
  1141. if( model.getValue( grd_inqrlst.nodeset + "[" + i + "]/inptflag") == "i" ){
  1142. grd_inqrlst.addStatus(i, "insert"); //입력모드
  1143. }
  1144. }
  1145. grd_inqrlst.refresh();
  1146. }
  1147. }
  1148. /**=========================================================================================================================
  1149. * 문진입력을 용이하게 하기위한 함수.
  1150. * 답안입력시 row이동
  1151. * bMove : true이면 row이동
  1152. ===========================================================================================================================*/
  1153. function fMoveInqrFocus(bMove){
  1154. if( grd_inqrlst.col != col_inqranswcd ) return ;
  1155. var idx = grd_inqrlst.row;
  1156. if( idx < 1) return ;
  1157. if( bMove == true ){
  1158. idx ++;
  1159. if( idx >= grd_inqrlst.rows ) {
  1160. idx = grd_inqrlst.rows ;
  1161. return;
  1162. }
  1163. grd_inqrlst.row = idx;
  1164. }
  1165. grd_inqrlst.col = col_inqranswcd ;
  1166. if( grd_inqrlst.valueMatrix( idx, col_inqranswflag) == "O" ){
  1167. var y = parseInt( grd_inqrlst.attribute("top") ) + parseInt(grd_inqrlst.rowheight(0) ) + parseInt(grd_inqrlst.rowheight(1) )* idx ;
  1168. var lim_y = parseInt( grd_inqrlst.attribute("top") ) + parseInt( grd_inqrlst.attribute("height") ) - parseInt(grp_inqrans.attribute("height")) ;
  1169. if( y > lim_y){
  1170. y = lim_y ;
  1171. }
  1172. fGetInqrAnsCdList (y);
  1173. }
  1174. else if( grd_inqrlst.valueMatrix( idx, col_inqranswflag) == "T" || grd_inqrlst.valueMatrix( idx, col_inqranswflag) == "N"){
  1175. grd_inqrlst.editCell();
  1176. }else{
  1177. /*
  1178. idx ++;
  1179. if( idx > grd_inqrlst.rows ) idx = grd_inqrlst.rows ;
  1180. grd_inqrlst.row = idx;*/
  1181. fMoveInqrFocus(true);
  1182. }
  1183. }
  1184. /**===========================================================================================================================
  1185. *문진선택형결과 가져오기
  1186. * IN : 문진구분/문진코드/기관코드
  1187. =============================================================================================================================*/
  1188. function fGetInqrAnsCdList( vTop ){
  1189. var idx = grd_inqrlst.row;
  1190. if( idx < 1) return ;
  1191. model.makeNode("/root/send/srchinqrflag");
  1192. model.makeNode("/root/send/ansinqrcd");
  1193. model.makeNode("/root/send/srchinstcd");
  1194. model.setValue("/root/send/srchinqrflag" , model.getValue(grd_inqrlst.nodeset + "[" + idx + "]/inqrflag"));
  1195. model.setValue("/root/send/ansinqrcd" , model.getValue(grd_inqrlst.nodeset + "[" + idx + "]/inqrcd"));
  1196. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  1197. model.removeNodeset(grd_inqranslst.nodeset);
  1198. ipt_answcd.value = "";
  1199. if( submit("TRAHB00202") == true ) {
  1200. if( vTop != "" ){
  1201. grp_inqrans.attribute("top") = parseInt(vTop);
  1202. }
  1203. grp_inqrans.visible = true;
  1204. model.setFocus("ipt_answcd");
  1205. }
  1206. }
  1207. /**======================================================================================================================================
  1208. * 문진답안선택시 gird로 값 setting
  1209. =========================================================================================================================================*/
  1210. function fSetInqrAns(){
  1211. var idx = grd_inqrlst.row;
  1212. if( idx < 1) return ;
  1213. var ansidx = model.getValue("/root/temp/rsltvalue");
  1214. if( ansidx < 1 ) return ;
  1215. var old_ans = grd_inqrlst.valueMatrix(idx, col_inqranswcd) ;
  1216. var new_ans = ansidx;
  1217. if( old_ans == new_ans ) return ;
  1218. var answer = new_ans.split(" ");
  1219. var ans_text = "";
  1220. for(var i=0; i<answer.length; i++){
  1221. if(i==answer.length-1){
  1222. ans_text += model.getValue("/root/main/tempinfo/anslst/item[answcd='"+answer[i]+"']/answcnts");
  1223. }else{
  1224. ans_text += model.getValue("/root/main/tempinfo/anslst/item[answcd='"+answer[i]+"']/answcnts")+",";
  1225. }
  1226. }
  1227. grd_inqrlst.valueMatrix(idx, col_inqranswcd) = new_ans;
  1228. grd_inqrlst.valueMatrix(idx, col_inqranswcnts) = ans_text;
  1229. if( grd_inqrlst.rowStatus(idx) == 0 ) {
  1230. grd_inqrlst.addStatus(idx, "update");
  1231. }
  1232. grd_inqrlst.refresh();
  1233. model.resetInstanceNode("/root/temp/rsltvalue");
  1234. }
  1235. /**===================================================================================
  1236. @desc : 공통 저장정보관련 초기화
  1237. =====================================================================================*/
  1238. function fInitSaveData(){
  1239. model.resetInstanceNode("/root/send/save");
  1240. }
  1241. /**===================================================================================
  1242. @desc : 검사결과에 따른 값이 공식에 의해서 결과도출
  1243. =====================================================================================*/
  1244. function fCalcRslt() {
  1245. if(grd_rsltlst.rows < 0) ret
  1246. var HL500 = 0; // 청력(좌)500HZ
  1247. var HL1000 = 0; // 청력(좌)1000HZ
  1248. var HL2000 = 0; // 청력(좌)2000HZ
  1249. var HL4000 = 0 // 청력(좌)4000HZ
  1250. var HR500 = 0; // 청력(우)500HZ
  1251. var HR1000 = 0; // 청력(우)1000HZ
  1252. var HR2000 = 0; // 청력(우)2000HZ
  1253. var HR4000 = 0; // 청력(우)4000HZ
  1254. var weight = 0; // 체중
  1255. var height = 0; // 신장
  1256. var degreeCnts = 0;
  1257. var wait_circumference = 0 // 허리둘레
  1258. var HDL_cholesterol = 0 ; // 고밀도 콜레스테롤
  1259. var clucose = 0; // 공복혈당
  1260. var H_BP = 0; // 혈압(최고)
  1261. var L_BP = 0; // 혈압(최저)
  1262. var Albumin = 0; // 알부민
  1263. Globulin = 0; // 글로부린
  1264. var totalprotein = 0;
  1265. var Pepsinogen1 = 0; // 펩시노겐 1
  1266. var Pepsinogen2 = 0; // 펩시노겐 2
  1267. var Pepsinogen_ratio = 0; // 펩시노겐 ratio
  1268. var sex = model.getValue("/root/main/acptinfo/item/sex"); // 성별
  1269. var BMIRow = -1;
  1270. var IDWRow = -1;
  1271. var BMDRow = -1;
  1272. var HLAVGRow = -1;
  1273. var HRAVGRow = -1;
  1274. var MetalRow = -1;
  1275. var PepsiRow = -1;
  1276. GlobulinRow = -1;
  1277. Ratio = 0;
  1278. RatioRow = -1;
  1279. // 성별
  1280. var sex = model.getValue("/root/main/acptinfo/item/sex");
  1281. for(var i = 1; i < grd_rsltlst.rows; i++) {
  1282. var testCd = grd_rsltlst.valueMatrix(i , grd_rsltlst.colRef("testcd"));
  1283. var testVal = parseFloat(grd_rsltlst.valueMatrix(i , grd_rsltlst.colRef("testrsltcnts")));
  1284. if(testCd == model.getValue("/root/init/calclst/C1") && !isNaN(testVal)) HL500 = testVal;
  1285. if(testCd == model.getValue("/root/init/calclst/C2") && !isNaN(testVal)) HL1000 = testVal;
  1286. if(testCd == model.getValue("/root/init/calclst/C3") && !isNaN(testVal)) HL2000 = testVal;
  1287. if(testCd == model.getValue("/root/init/calclst/C4") && !isNaN(testVal)) HL4000 = testVal;
  1288. if(testCd == model.getValue("/root/init/calclst/C5") && !isNaN(testVal)) HR500 = testVal;
  1289. if(testCd == model.getValue("/root/init/calclst/C6") && !isNaN(testVal)) HR1000 = testVal;
  1290. if(testCd == model.getValue("/root/init/calclst/C7") && !isNaN(testVal)) HR2000 = testVal;
  1291. if(testCd == model.getValue("/root/init/calclst/C8") && !isNaN(testVal)) HR4000 = testVal;
  1292. if(testCd == model.getValue("/root/init/calclst/C9") && !isNaN(testVal)) weight = testVal;
  1293. if(testCd == model.getValue("/root/init/calclst/C10") && !isNaN(testVal)) height = testVal;
  1294. if(testCd == model.getValue("/root/init/calclst/C11") && !isNaN(testVal)) wait_circumference = testVal;
  1295. if(testCd == model.getValue("/root/init/calclst/C12") && !isNaN(testVal)) clucose = testVal;
  1296. if(testCd == model.getValue("/root/init/calclst/C13") && !isNaN(testVal)) H_BP = testVal;
  1297. if(testCd == model.getValue("/root/init/calclst/C14") && !isNaN(testVal)) L_BP = testVal;
  1298. if(testCd == model.getValue("/root/init/calclst/C15") && !isNaN(testVal)) HDL_cholesterol = testVal;
  1299. if(testCd == model.getValue("/root/init/calclst/C16") && !isNaN(testVal)) Albumin = testVal;
  1300. if(testCd == model.getValue("/root/init/calclst/C17") && !isNaN(testVal)) Globulin = testVal;
  1301. if(testCd == model.getValue("/root/init/calclst/C18") && !isNaN(testVal)) totalprotein = testVal;
  1302. if(testCd == model.getValue("/root/init/calclst/C19") && !isNaN(testVal)) Pepsinogen1 = testVal;
  1303. if(testCd == model.getValue("/root/init/calclst/C20") && !isNaN(testVal)) Pepsinogen2 = testVal;
  1304. // BMI,대상증후군,평균순음 ROW
  1305. if(testCd == model.getValue("/root/init/calclst/C21") ) BMIRow = i;
  1306. if(testCd == model.getValue("/root/init/calclst/C22")) IDWRow = i;
  1307. if(testCd == model.getValue("/root/init/calclst/C23")) BMDRow = i;
  1308. if(testCd == model.getValue("/root/init/calclst/C24")) HLAVGRow = i;
  1309. if(testCd == model.getValue("/root/init/calclst/C25") ) HRAVGRow = i;
  1310. if(testCd == model.getValue("/root/init/calclst/C26") ) MetalRow = i;
  1311. if(testCd == model.getValue("/root/init/calclst/C27")) RatioRow = i;
  1312. if(testCd == model.getValue("/root/init/calclst/C17")) GlobulinRow = i;
  1313. if(testCd == model.getValue("/root/init/calclst/C28")) PepsiRow = i;
  1314. }
  1315. /********************************************
  1316. ************** 글로부린 **********
  1317. *********************************************/
  1318. Globulin = round(totalprotein - Albumin,1);
  1319. if(!isNaN(Globulin)) {
  1320. if( grd_rsltlst.valueMatrix(GlobulinRow , grd_rsltlst.colRef("testrsltcnts")) != Globulin) {
  1321. grd_rsltlst.valueMatrix(GlobulinRow , grd_rsltlst.colRef("testrsltcnts")) = Globulin;
  1322. fSetJudgStat(GlobulinRow);
  1323. grd_rsltlst.rowStatus(GlobulinRow) = 2;
  1324. }
  1325. }
  1326. /********************************************
  1327. ************** A/G RATIO **********
  1328. *********************************************/
  1329. if(Globulin == 0) {
  1330. grd_rsltlst.valueMatrix(RatioRow , grd_rsltlst.colRef("testrsltcnts")) = 0;
  1331. }else {
  1332. Ratio = round(Albumin/Globulin,1);
  1333. if(!isNaN(Ratio)) {
  1334. if(grd_rsltlst.valueMatrix(RatioRow , grd_rsltlst.colRef("testrsltcnts")) != Ratio) {
  1335. grd_rsltlst.valueMatrix(RatioRow , grd_rsltlst.colRef("testrsltcnts")) = Ratio;
  1336. fSetJudgStat(RatioRow);
  1337. grd_rsltlst.rowStatus(RatioRow) = 2;
  1338. }
  1339. }
  1340. }
  1341. /***********************************************
  1342. ********** 펩시노겐 Ratio *********
  1343. **********************************************/
  1344. Pepsinogen_ratio = round(Pepsinogen1 / Pepsinogen2 , 2);
  1345. if(!isNaN(Pepsinogen_ratio)) {
  1346. if(grd_rsltlst.valueMatrix( PepsiRow , grd_rsltlst.colRef("testrsltcnts")) != Pepsinogen_ratio) {
  1347. grd_rsltlst.valueMatrix( PepsiRow , grd_rsltlst.colRef("testrsltcnts")) = Pepsinogen_ratio;
  1348. fSetJudgStat(PepsiRow);
  1349. grd_rsltlst.rowStatus(PepsiRow) = 2;
  1350. }
  1351. }
  1352. /********************************************
  1353. ************** BMI계산 **********
  1354. *********************************************/
  1355. //본원 BMI계산식을 제외하고 기계에서 들어오는 값으로 연동되도록 수정(2017/02/09 이정택)
  1356. var BMI = round(weight/(height*height/10000),2);
  1357. if(getUserInfo("dutplceinstcd")=="031"){
  1358. if(grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("outtestrsltcnts"))!=""){
  1359. grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("testrsltcnts")) = grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("outtestrsltcnts"));
  1360. fSetJudgStat(BMIRow);
  1361. grd_rsltlst.rowStatus(BMIRow) = 2;
  1362. }else{
  1363. if(!isNaN(BMI)){
  1364. if(grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("testrsltcnts")) != BMI) {
  1365. grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("testrsltcnts")) = BMI;
  1366. fSetJudgStat(BMIRow);
  1367. grd_rsltlst.rowStatus(BMIRow) = 2;
  1368. }
  1369. }
  1370. }
  1371. }else{
  1372. if(!isNaN(BMI)){
  1373. if(grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("testrsltcnts")) != BMI) {
  1374. grd_rsltlst.valueMatrix( BMIRow , grd_rsltlst.colRef("testrsltcnts")) = BMI;
  1375. fSetJudgStat(BMIRow);
  1376. grd_rsltlst.rowStatus(BMIRow) = 2;
  1377. }
  1378. }
  1379. }
  1380. /********************************************
  1381. ************** 표준체중 **********
  1382. *********************************************/
  1383. var IDW = 0;
  1384. if(sex == "M" || sex == "") {
  1385. IDW = round((height*height/10000)*22,2);
  1386. }else if(sex == "F") {
  1387. IDW = round((height*height/10000)*21,2);
  1388. }
  1389. //본원의 경우 표준체중 계산식 안타도록 수정(2017/02/09 이정택)
  1390. if(getUserInfo("dutplceinstcd")=="031"){
  1391. if(grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("outtestrsltcnts"))!=""){
  1392. grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("testrsltcnts")) = grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("outtestrsltcnts"));
  1393. fSetJudgStat(IDWRow);
  1394. grd_rsltlst.rowStatus(IDWRow) = 2;
  1395. }else{
  1396. if(!isNaN(IDW)){
  1397. if(grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("testrsltcnts")) != IDW) {
  1398. grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("testrsltcnts")) = IDW;
  1399. fSetJudgStat(IDWRow);
  1400. grd_rsltlst.rowStatus(IDWRow) = 2;
  1401. }
  1402. }
  1403. }
  1404. }else{
  1405. if(!isNaN(IDW)){
  1406. if(grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("testrsltcnts")) != IDW) {
  1407. grd_rsltlst.valueMatrix( IDWRow , grd_rsltlst.colRef("testrsltcnts")) = IDW;
  1408. fSetJudgStat(IDWRow);
  1409. grd_rsltlst.rowStatus(IDWRow) = 2;
  1410. }
  1411. }
  1412. }
  1413. /********************************************
  1414. ************** 비만도 **********
  1415. *********************************************/
  1416. var BMIStat = round(( weight / IDW ) * 100, 0);
  1417. /*
  1418. if(BMI < 18.5 ) {
  1419. BMIStat = "저체중";
  1420. }else if(18.5 <= BMI && BMI <= 24.9 ) {
  1421. BMIStat = "정상";
  1422. }else if(25.0 <= BMI && BMI < 29.9) {
  1423. BMIStat = "비만1단계";
  1424. }else if(30.0 <= BMI && BMI <= 40.0) {
  1425. BMIStat = "비만2단계";
  1426. }else if(40.0 < BMI) {
  1427. BMIStat = "비만3단계";
  1428. }
  1429. */
  1430. //본원의 경우 비만도가 기계에서 들어오는 수치대로 연동되도록 프로그램 수정 (2017/01/10 이정택)
  1431. if(getUserInfo("dutplceinstcd")=="031"){
  1432. if(grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("outtestrsltcnts"))!=""){
  1433. grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("testrsltcnts")) = grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("outtestrsltcnts"));
  1434. fSetJudgStat(BMDRow);
  1435. grd_rsltlst.rowStatus(BMDRow) = 2;
  1436. }else{
  1437. if(grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("testrsltcnts")) != BMIStat && BMIStat != "") {
  1438. grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("testrsltcnts")) = BMIStat;
  1439. fSetJudgStat(BMDRow);
  1440. grd_rsltlst.rowStatus(BMDRow) = 2;
  1441. }
  1442. }
  1443. }else{
  1444. if(grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("testrsltcnts")) != BMIStat && BMIStat != "") {
  1445. grd_rsltlst.valueMatrix( BMDRow , grd_rsltlst.colRef("testrsltcnts")) = BMIStat;
  1446. fSetJudgStat(BMDRow);
  1447. grd_rsltlst.rowStatus(BMDRow) = 2;
  1448. }
  1449. }
  1450. /********************************************
  1451. *********** 평균순음계산 ************
  1452. *********************************************/
  1453. var HLAVG = round((HL500 + HL1000 + HL1000 + HL2000 + HL2000 + HL4000) /6,0);
  1454. var HRAVG = round((HR500 + HR1000 + HR1000 + HR2000 + HR2000 + HR4000)/6,0);
  1455. if(!isNaN(HLAVG)) {
  1456. if(grd_rsltlst.valueMatrix(HLAVGRow , grd_rsltlst.colRef("testrsltcnts")) != HLAVG || grd_rsltlst.valueMatrix(HLAVGRow , grd_rsltlst.colRef("testrsltcnts")) == ""){
  1457. grd_rsltlst.valueMatrix(HLAVGRow , grd_rsltlst.colRef("testrsltcnts")) = HLAVG;
  1458. fSetJudgStat(HLAVGRow);
  1459. grd_rsltlst.rowStatus(HLAVGRow) = 2;
  1460. }
  1461. }
  1462. if(!isNaN(HRAVG)) {
  1463. if(grd_rsltlst.valueMatrix(HRAVGRow , grd_rsltlst.colRef("testrsltcnts")) != HRAVG || grd_rsltlst.valueMatrix(HRAVGRow , grd_rsltlst.colRef("testrsltcnts")) == "") {
  1464. grd_rsltlst.valueMatrix(HRAVGRow , grd_rsltlst.colRef("testrsltcnts")) = HRAVG;
  1465. fSetJudgStat(HRAVGRow);
  1466. grd_rsltlst.rowStatus(HRAVGRow) = 2;
  1467. }
  1468. }
  1469. /********************************************
  1470. *********** 대상증후군 ************
  1471. *********************************************/
  1472. if(sex == "M" || sex == "") { // 남
  1473. if(wait_circumference >= 90) { // 허리둘레
  1474. degreeCnts++;
  1475. }
  1476. if(HDL_cholesterol > 0 && HDL_cholesterol < 40) { // 고밀도 콜레스테롤
  1477. degreeCnts++;
  1478. }
  1479. }else if(sex == "F") { // 여
  1480. if(wait_circumference >= 80) { // 허리둘레
  1481. degreeCnts++;
  1482. }
  1483. if(HDL_cholesterol > 0 && HDL_cholesterol < 50) {
  1484. degreeCnts++; // 고밀도 콜레스테롤
  1485. }
  1486. }
  1487. // 공복혈당
  1488. if(clucose >= 110) {
  1489. degreeCnts++;
  1490. }
  1491. // 혈압
  1492. if(H_BP >= 130 || L_BP >= 85) {
  1493. degreeCnts++;
  1494. }
  1495. if(degreeCnts >= 3) {
  1496. if(grd_rsltlst.valueMatrix(MetalRow , grd_rsltlst.colRef("testrsltcnts")) != "대사증후군") {
  1497. grd_rsltlst.valueMatrix(MetalRow , grd_rsltlst.colRef("testrsltcnts")) = "대사증후군";
  1498. fSetJudgStat(MetalRow);
  1499. grd_rsltlst.rowStatus(MetalRow) = 2;
  1500. }
  1501. }else {
  1502. if(grd_rsltlst.valueMatrix(MetalRow , grd_rsltlst.colRef("testrsltcnts")) != "정상") {
  1503. grd_rsltlst.valueMatrix(MetalRow , grd_rsltlst.colRef("testrsltcnts")) = "정상";
  1504. fSetJudgStat(MetalRow);
  1505. grd_rsltlst.rowStatus(MetalRow) = 2;
  1506. }
  1507. }
  1508. }
  1509. /**===================================================================================
  1510. @desc : 검사결과에 따른 값이 공식에 의해서 결과도출
  1511. =====================================================================================*/
  1512. // 반올림
  1513. function round(val,precision) {
  1514. if(!isNaN(val) && val != Number.POSITIVE_INFINITY) {
  1515. val = val * Math.pow(10,precision);
  1516. val = Math.round(val);
  1517. return val/Math.pow(10,precision);
  1518. }else {
  1519. return ;
  1520. }
  1521. }
  1522. /**===================================================================================
  1523. @desc : 선택혈 검사 결과 예문등록
  1524. =====================================================================================*/
  1525. function fSetChoiExmp() {
  1526. var idx = grd_rsltlst.row;
  1527. var rsltcnts = grd_rsltlst.valueMatrix(idx , grd_rsltlst.colRef("testrsltcnts") );
  1528. var testcd = grd_rsltlst.valueMatrix(idx , grd_rsltlst.colRef("testcd") );
  1529. var nodeList = instance1.selectNodes("/root/main/acptinfo/rsltlst/itemexmp");
  1530. for(var i=0; i <= nodeList.length; i++) {
  1531. var desrsltcnts = model.getValue("/root/main/acptinfo/rsltlst/itemexmp[" + i + "]/rsltcd");
  1532. var destestcd = model.getValue("/root/main/acptinfo/rsltlst/itemexmp[" + i + "]/testcd");
  1533. if(rsltcnts == desrsltcnts && testcd == destestcd) {
  1534. // grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("assorsltcnts") ) = grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("assorsltcnts") );
  1535. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("testrsltcnts") ) = model.getValue("/root/main/acptinfo/rsltlst/itemexmp[" + i + "]/rsltnm");
  1536. break;
  1537. }
  1538. }
  1539. }
  1540. /**===================================================================================
  1541. @desc : 숫자형 결과의 판정등록(참고치 기준)
  1542. =====================================================================================*/
  1543. function fSetJudgStat(vIdx) {
  1544. var idx = 0;
  1545. if(vIdx == "" || vIdx == null) {
  1546. idx = grd_rsltlst.row;
  1547. }else {
  1548. idx = vIdx;
  1549. }
  1550. var nodeset = grd_rsltlst.nodeset;
  1551. var maxval = model.getValue(nodeset + "[" + idx + "]/maxval");
  1552. var minval = model.getValue(nodeset + "[" + idx + "]/minval");
  1553. var rsltcnts = parseFloat(model.getValue(nodeset + "[" + idx + "]/testrsltcnts"));
  1554. var judgrsltcnts = model.getValue(nodeset + "[" + idx + "]/judgrsltcnts");
  1555. //alert("maxval : " + maxval + " minval : " + minval + " rsltcnts : " + rsltcnts);
  1556. if(maxval != "" && !isNaN(rsltcnts) && minval =="") {
  1557. if(maxval < rsltcnts) {//MAX초과일경우
  1558. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "H";
  1559. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "#ff7a85";
  1560. }else{//MAX초과이었는데 MAX값 이하로 변경된경우
  1561. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "-";
  1562. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "white";
  1563. }
  1564. }
  1565. if(minval != "" && !isNaN(rsltcnts) && maxval == "") {
  1566. if(minval > rsltcnts) {//MIN값 미만일경우
  1567. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "L";
  1568. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "#99ccff";
  1569. }else{//MIN값 미만 이었는데 이상으로 변경된경우
  1570. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "-";
  1571. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "white";
  1572. }
  1573. }
  1574. if(minval != "" && maxval != "" && !isNaN(rsltcnts)) {
  1575. if(minval <= rsltcnts && rsltcnts <= maxval) {//MIX과 MAX가 다 있을경우 해당할때
  1576. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "-";
  1577. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "white";
  1578. }else if(minval >= rsltcnts) {
  1579. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "L";
  1580. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "#99ccff";
  1581. }else if(rsltcnts >= maxval){
  1582. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "H";
  1583. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "#ff7a85";
  1584. }
  1585. }
  1586. if(model.getValue(nodeset + "[" + idx + "]/testrsltcnts") == "") { //값을 삭제 했을경우
  1587. grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) = "-";
  1588. grd_rsltlst.cellStyle("background-color" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "white";
  1589. }
  1590. grd_rsltlst.cellStyle("background-position" , idx , grd_rsltlst.colRef("judgrsltcnts") , idx , grd_rsltlst.colRef("judgrsltcnts")) = "center";
  1591. if ( (grd_rsltlst.valueMatrix( idx , grd_rsltlst.colRef("judgrsltcnts") ) != judgrsltcnts) && (rsltcnts != "") ) {
  1592. if ( grd_rsltlst.rowStatus(vIdx) == 0 ) {
  1593. grd_rsltlst.rowStatus(vIdx) = 2;
  1594. }
  1595. }
  1596. }
  1597. /**===================================================================================
  1598. @desc : 결과값의 row 높이를 변경한다.
  1599. =====================================================================================*/
  1600. function fSetRsltHeight(vGrd , vHeight) {
  1601. var cnts = vGrd.rows;
  1602. for(var i=1; i <= cnts; i++ ) {
  1603. vGrd.rowHeight(i) = vHeight;
  1604. }
  1605. }
  1606. function fCheck() {
  1607. for( var i = 0 ; i <= grd_acptlst.selectedRows ; i++){
  1608. grd_acptlst.valueMatrix(grd_acptlst.selectedRow(i), grd_acptlst.colRef("sel")) = "Y" ;
  1609. }
  1610. }
  1611. function fCnclCheck() {
  1612. for( var i = 0 ; i <= grd_acptlst.selectedRows ; i++){
  1613. grd_acptlst.valueMatrix(grd_acptlst.selectedRow(i), grd_acptlst.colRef("sel")) = "N" ; ;
  1614. }
  1615. }
  1616. /**=============================================================================================================
  1617. *그리드 특정 컬럼값을 비교하여 셀 백컬러 변경
  1618. =================================================================================================================*/
  1619. function aezfSetCellStyle( gridID , styleFlag , data , colRef , setColRef, fillflag ) {
  1620. var fillStyle = "";
  1621. var style;
  1622. if(fillflag == "B"){
  1623. fillStyle = "background-color";
  1624. style = new Array("#ffff00", "#ccffcc", "#FF9A00");
  1625. }else if ( fillflag == "F"){
  1626. fillStyle = "color";
  1627. style = new Array("#ffff00", "#ccffcc", "#FF9A00");
  1628. }
  1629. var styleFlags = styleFlag.split("^");
  1630. var datas = data.split("^");
  1631. gridObj = document.all(gridID);
  1632. gridObj.backcoloralternate = "transparent";
  1633. for(var i=gridObj.fixedRows; i<gridObj.Rows; i++){
  1634. gridObj.cellstyle(fillStyle, i, gridObj.colRef(setColRef)) = "#ffff00";
  1635. gridObj.cellstyle("font-weight", i, gridObj.colRef(setColRef)) = "normal";
  1636. }
  1637. for(var j=0; j<datas.length; j++){
  1638. var dataValue = datas[j];
  1639. var styleValue = style[styleFlags[j]];
  1640. for(var i=gridObj.fixedRows; i<gridObj.Rows; i++){
  1641. if(gridObj.labelMatrix(i , gridObj.colRef(colRef)) == dataValue){
  1642. gridObj.cellstyle(fillStyle, i, gridObj.colRef(setColRef)) = styleValue;
  1643. gridObj.cellstyle("font-weight", i, gridObj.colRef(setColRef)) = "bold";
  1644. }
  1645. }
  1646. }
  1647. }
  1648. /**=============================================================================================================
  1649. *CDIS전체연동
  1650. =================================================================================================================*/
  1651. function fClickCDISResultListAll() {
  1652. model.resetInstanceNode("/root/send/iemr");
  1653. var prcpdd = "";
  1654. var execprcpuniqno = "";
  1655. var instcd = "";
  1656. var srchLength1 = model.instances(0).selectNodes( "/root/main/acptinfo/rsltlst/item" ).length;
  1657. for(var i=1; i<=srchLength1; i++){
  1658. prcpdd += model.getValue("/root/main/acptinfo/rsltlst/item["+ i +"]/prcpdd").getTrim()+",";
  1659. execprcpuniqno += model.getValue("/root/main/acptinfo/rsltlst/item["+ i +"]/execprcpuniqno").getTrim()+",";
  1660. instcd += getUserInfo("dutplceinstcd").getTrim()+",";
  1661. }
  1662. var sprcpdd = aezfTrim(prcpdd , 44);
  1663. var sexecprcpuniqno = aezfTrim(execprcpuniqno , 44);
  1664. var sinstcd = aezfTrim(instcd , 44);
  1665. model.setValue("/root/send/iemr/cmc_orddate" , sprcpdd);
  1666. model.setValue("/root/send/iemr/cmc_orderseqno" , sexecprcpuniqno);
  1667. model.setValue("/root/send/iemr/cmc_spcid" , sinstcd);
  1668. if(window.children.item("imgemrviewer") == null){
  1669. window.load("../../../emr/imgemrweb/xrw/SSMRC03110.xrw","modeless", "imgemrviewer", "", "/root/send/iemr", "/root/hidden/temp");
  1670. }
  1671. }
  1672. /*
  1673. * 추가정보저장
  1674. */
  1675. function fSaveCmts(){
  1676. /* 2015/12/11 이정택 주석처리*/
  1677. /*
  1678. model.removenode("/root/sendcmts");
  1679. model.makeValue("/root/sendcmts/healexamflag" , model.getValue("/root/main/acptinfo/item/healexamflag"));
  1680. model.makeValue("/root/sendcmts/healexamdetlflag" , model.getValue("/root/main/acptinfo/item/healexamdetlflag"));
  1681. model.makeValue("/root/sendcmts/rsrvdd" , model.getValue("/root/main/acptinfo/item/rsrvdd"));
  1682. model.makeValue("/root/sendcmts/rsrvno" , model.getValue("/root/main/acptinfo/item/rsrvno"));
  1683. model.makeValue("/root/sendcmts/savetype" , "");
  1684. model.makeValue("/root/sendcmts/remcnts" , model.getValue("/root/main/acptinfo/item/remcnts"));
  1685. if(submit("TXAHA04029")){
  1686. grd_acptlst.valueMatrix(grd_acptlst.row, grd_acptlst.colRef("remcnts")) = model.getValue("/root/main/acptinfo/item/remcnts");
  1687. }
  1688. */
  1689. }
  1690. ]]>
  1691. </script>
  1692. </xhtml:head>
  1693. <xhtml:body guideline="1,1192;1,1195;2,758;2,786;2,783;" style="border-left-style:none; margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  1694. <group id="group1" style="left:0px; top:0px; width:1194px; height:13px; ">
  1695. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:159px; height:14px; ">검사결과관리</caption>
  1696. </group>
  1697. <group id="group4" scroll="auto" style="left:0px; top:13px; width:1194px; height:744px; ">
  1698. <caption id="caption7" class="tit_2" style="left:314px; top:63px; width:151px; height:13px; ">기본사항</caption>
  1699. <line id="line4" class="line_1" style="x1:314px; y1:79px; x2:1190px; y2:79px; "/>
  1700. <line id="line5" class="line_2" style="x1:313px; y1:173px; x2:1028px; y2:173px; "/>
  1701. <line id="line6" class="line_2" style="x1:314px; y1:107px; x2:378px; y2:107px; "/>
  1702. <caption id="caption16" class="cell_1" style="left:314px; top:109px; width:64px; height:23px; vertical-align:middle; ">건진명칭</caption>
  1703. <output id="opt_pkgnm" ref="/root/main/acptinfo/item/pkgnm" class="output_fix" style="left:381px; top:111px; width:411px; height:19px; "/>
  1704. <textarea id="tar_remcnts" ref="/root/main/acptinfo/item/remcnts" disabled="true" style="left:381px; top:134px; width:808px; height:45px; "/>
  1705. <caption id="caption17" class="cell_1" style="left:314px; top:134px; width:64px; height:47px; vertical-align:middle; ">
  1706. <![CDATA[전달사항
  1707. [접수]]]>
  1708. </caption>
  1709. <select1 id="cmb_statflag" ref="/root/main/acptinfo/item/statflag" class="combo_default" disabled="true" appearance="minimal" style="left:1040px; top:86px; width:150px; height:19px; ">
  1710. <choices>
  1711. <itemset nodeset="/root/init/baseinfo/statlst/A0107">
  1712. <label ref="cdnm"/>
  1713. <value ref="cdid"/>
  1714. </itemset>
  1715. </choices>
  1716. </select1>
  1717. <caption id="caption21" class="cell_1" style="left:795px; top:84px; width:64px; height:23px; vertical-align:middle; ">성별/나이</caption>
  1718. <caption id="caption22" class="cell_1" style="left:968px; top:84px; width:69px; height:23px; vertical-align:middle; ">상태</caption>
  1719. <caption id="caption18" class="cell_1" style="left:795px; top:109px; width:64px; height:23px; vertical-align:middle; ">참고사항</caption>
  1720. <input id="input4" ref="/root/main/acptinfo/item/rsltremcnts" class="input_default" style="left:862px; top:111px; width:327px; height:19px; "/>
  1721. <line id="line9" class="line_3" style="x1:314px; y1:181px; x2:1190px; y2:181px; "/>
  1722. <group id="group5" style="left:0px; top:10px; width:1193px; height:45px; vertical-align:top; ">
  1723. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1193px; height:45px; background-color:#fffbf2; border-color:#ffd799; "/>
  1724. <caption id="caption11" class="search_name" style="left:205px; top:14px; width:94px; height:17px; ">건진일자:</caption>
  1725. <input id="ipt_srchfromdd" ref="/root/init/send/srchfromdd" class="input_s_essential" inputtype="date" style="left:324px; top:15px; width:100px; height:19px; ">
  1726. <script type="javascript" ev:event="onkeyup">
  1727. <![CDATA[
  1728. if( event.keyCode == 13){
  1729. fGetRsltPatList(); //결과입력대상자 가져오기
  1730. }
  1731. ]]>
  1732. </script>
  1733. <script type="javascript" ev:event="xforms-value-changed">
  1734. <![CDATA[
  1735. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  1736. model.makeValue("/root/send/srchhealexamflag", examflag);
  1737. fGetRsltPatList(); //결과입력대상자 가져오기
  1738. ]]>
  1739. </script>
  1740. </input>
  1741. <caption id="caption12" class="search_name" style="left:655px; top:14px; width:80px; height:17px; ">검사실 :</caption>
  1742. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:14px; width:56px; height:22px; ">
  1743. <caption>조회</caption>
  1744. <script type="javascript" ev:event="DOMActivate">
  1745. <![CDATA[
  1746. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0, 1);
  1747. model.makeValue("/root/send/srchhealexamflag", examflag );
  1748. fGetRsltPatList(); //결과입력대상자 가져오기
  1749. ]]>
  1750. </script>
  1751. </button>
  1752. <line id="line7" style="x1:1115px; y1:7px; x2:1115px; y2:38px; border-color:#ffe4bb; border-left-style:solid; "/>
  1753. <select1 id="cmb_srchroomcd" ref="/root/init/send/srchroomcd" class="combo_s_essential" appearance="minimal" style="left:825px; top:15px; width:108px; height:19px; ">
  1754. <choices>
  1755. <itemset nodeset="/root/init/room/roomlst/itemroom">
  1756. <label ref="testroomnm"/>
  1757. <value ref="testroomcd"/>
  1758. </itemset>
  1759. </choices>
  1760. <script type="javascript" ev:event="xforms-value-changed">
  1761. <![CDATA[
  1762. fGetRsltPatList(); //결과입력대상자 가져오기
  1763. ]]>
  1764. </script>
  1765. </select1>
  1766. <button id="btn_srchpat" class="icon_search" style="left:625px; top:4px; width:16px; height:16px; ">
  1767. <caption/>
  1768. <script type="javascript" ev:event="DOMActivate">
  1769. <![CDATA[
  1770. fSearchPatInfo("SMAHA00100", "pid", model.getValue(ipt_pid.attribute("ref")), "N", "/root/send" ,ipt_pid.attribute("ref"), ipt_pnm.attribute("ref") );
  1771. if( model.getValue(ipt_pid.attribute("ref")) != "" ){
  1772. fGetRsltPatList(); //결과입력대상자 가져오기
  1773. }
  1774. ]]>
  1775. </script>
  1776. </button>
  1777. <input id="ipt_pid" ref="/root/init/send/srchpid2" class="input_search" style="left:555px; top:4px; width:66px; height:19px; ">
  1778. <script type="javascript" ev:event="onkeyup">
  1779. <![CDATA[
  1780. if( event.keyCode != 13) return ;
  1781. /*
  1782. fGetPatInfo(2);
  1783. model.setValue(ipt_pid.attribute("ref"), model.getValue("/root/temp/patinfo/item/pid") );
  1784. model.setValue(ipt_pnm.attribute("ref"), model.getValue("/root/temp/patinfo/item/hngnm") );
  1785. fGetRsltPatList(); //결과입력대상자 가져오기
  1786. */
  1787. inputEnterKey("btn_srchpat","DOMActivate");
  1788. ]]>
  1789. </script>
  1790. </input>
  1791. <input id="ipt_pnm" ref="/root/init/send/srchpnm" class="output_fix" style="left:555px; top:24px; width:90px; height:19px; ">
  1792. <script type="javascript" ev:event="onkeyup">
  1793. <![CDATA[
  1794. inputEnterKey("btn_srchpat","DOMActivate");
  1795. ]]>
  1796. </script>
  1797. </input>
  1798. <caption id="caption23" class="search_name" style="left:465px; top:14px; width:89px; height:17px; ">환자검색 :</caption>
  1799. <select1 id="cmb_srchhealexamdetlflag" ref="/root/init/send/srchhealexamdetlflag" class="combo_search" appearance="minimal" style="left:92px; top:15px; width:108px; height:19px; ">
  1800. <choices>
  1801. <itemset nodeset="/root/init/baseinfo/hedetlflaglst/A0069">
  1802. <label ref="cdnm"/>
  1803. <value ref="cdid"/>
  1804. </itemset>
  1805. </choices>
  1806. <script type="javascript" ev:event="xforms-select">
  1807. <![CDATA[
  1808. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  1809. model.makeValue("/root/send/srchhealexamflag",examflag );
  1810. fGetRsltPatList(); //결과입력대상자 가져오기
  1811. ]]>
  1812. </script>
  1813. </select1>
  1814. <caption id="caption9" class="search_name" style="left:5px; top:14px; width:86px; height:17px; ">검진구분 :</caption>
  1815. <button id="btn_nextmonth" class="icon_next_year" style="left:444px; top:16px; width:16px; height:16px; ">
  1816. <caption/>
  1817. <script type="javascript" ev:event="DOMActivate">
  1818. <![CDATA[
  1819. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  1820. model.makeValue("/root/send/srchhealexamflag",examflag );
  1821. fSetOrdDD("M", 1);
  1822. ]]>
  1823. </script>
  1824. </button>
  1825. <button id="btn_nextday" class="icon_next_month" style="left:426px; top:16px; width:16px; height:16px; ">
  1826. <caption/>
  1827. <script type="javascript" ev:event="DOMActivate">
  1828. <![CDATA[
  1829. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  1830. model.makeValue("/root/send/srchhealexamflag",examflag );
  1831. fSetOrdDD("D", 1);
  1832. ]]>
  1833. </script>
  1834. </button>
  1835. <button id="btn_preday" class="icon_pre_month" style="left:306px; top:16px; width:16px; height:16px; ">
  1836. <caption/>
  1837. <script type="javascript" ev:event="DOMActivate">
  1838. <![CDATA[
  1839. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  1840. model.makeValue("/root/send/srchhealexamflag",examflag );
  1841. fSetOrdDD("D", -1);
  1842. ]]>
  1843. </script>
  1844. </button>
  1845. <button id="btn_premonth" class="icon_pre_year" style="left:287px; top:16px; width:16px; height:16px; ">
  1846. <caption/>
  1847. <script type="javascript" ev:event="DOMActivate">
  1848. <![CDATA[
  1849. var examflag= model.getValue("/root/init/send/srchhealexamdetlflag").substr(0,1);
  1850. model.makeValue("/root/send/srchhealexamflag",examflag );
  1851. fSetOrdDD("M", -1);
  1852. ]]>
  1853. </script>
  1854. </button>
  1855. <caption id="caption3" class="search_name" style="left:940px; top:14px; width:86px; height:17px; ">상태구분 :</caption>
  1856. <select1 id="combo1" ref="/root/init/send/srchstatfg" appearance="minimal" style="left:1030px; top:15px; width:80px; height:19px; ">
  1857. <choices>
  1858. <item>
  1859. <label>전체</label>
  1860. <value>A</value>
  1861. </item>
  1862. <item>
  1863. <label>결과대기</label>
  1864. <value>G</value>
  1865. </item>
  1866. <item>
  1867. <label>판정대기</label>
  1868. <value>H</value>
  1869. </item>
  1870. </choices>
  1871. </select1>
  1872. <select1 id="combo3" ref="/root/init/send/srchhealexamplacecd" class="combo_search" appearance="minimal" style="left:730px; top:15px; width:90px; height:19px; ">
  1873. <choices>
  1874. <itemset nodeset="/root/init/baseinfo/healexamplacelst/S600">
  1875. <label ref="cdnm"/>
  1876. <value ref="cdid"/>
  1877. </itemset>
  1878. </choices>
  1879. <script type="javascript" ev:event="xforms-value-changed">
  1880. <![CDATA[
  1881. model.removenodeset("/root/init/room/roomlst/itemroom");
  1882. model.setValue("/root/init/send/srchroomcd","");
  1883. model.setValue("/root/send/srchhealexamplacecd",combo3.value);
  1884. submit("TRAHB01502");
  1885. model.refresh();
  1886. ]]>
  1887. </script>
  1888. </select1>
  1889. </group>
  1890. <datagrid id="grd_acptlst" nodeset="/root/main/acptlst/item" caption="선택^성명^등록번호^성별^나이^상태^문진출력상태^접수시간^대기시작^engnm^pkgnm^orddd^sex^age^cmpynm,^rgstno1^rgstno2^cmpycd^pkgcd^rsrvdd^rsrvno^cretno^orddeptcd^healexamflag^healexamdetlflag^remcnts^inqrprntflag^hopedd^건진장소^rsltyn" colsep="^" colwidth="30, 65, 65, 35, 37, 58, 80, 80, 73, 52, 50, 42, 33, 45, 45, 46, 49, 44, 53, 46, 62, 45, 100, 57, 62, 100, 100, 100, 100, 100" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:84px; width:309px; height:656px; ">
  1891. <col checkvalue="Y,N" ref="sel" type="checkbox" visibility="hidden"/>
  1892. <col ref="hngnm"/>
  1893. <col ref="pid"/>
  1894. <col ref="sex" style="text-align:center; "/>
  1895. <col ref="age" style="text-align:center; "/>
  1896. <col disabled="true" ref="statflag" type="combo" style="text-align:center; ">
  1897. <choices>
  1898. <itemset nodeset="/root/init/baseinfo/statlst/A0107">
  1899. <label ref="cdnm"/>
  1900. <value ref="cdid"/>
  1901. </itemset>
  1902. </choices>
  1903. </col>
  1904. <col disabled="true" ref="inqrprntflag" type="combo" style="text-align:left; ">
  1905. <choices>
  1906. <item>
  1907. <label>미출력</label>
  1908. <value>N</value>
  1909. </item>
  1910. <item>
  1911. <label>출력</label>
  1912. <value>P</value>
  1913. </item>
  1914. <item>
  1915. <label>수령</label>
  1916. <value>A</value>
  1917. </item>
  1918. <item>
  1919. <label>완료</label>
  1920. <value>E</value>
  1921. </item>
  1922. </choices>
  1923. </col>
  1924. <col ref="ordtm" format="hh:nn"/>
  1925. <col ref="waitstarttm"/>
  1926. <col ref="engnm" visibility="hidden"/>
  1927. <col ref="pkgnm" visibility="hidden"/>
  1928. <col ref="orddd" visibility="hidden"/>
  1929. <col ref="sex" visibility="hidden"/>
  1930. <col ref="age" visibility="hidden"/>
  1931. <col ref="cmpynm" visibility="hidden"/>
  1932. <col ref="rgstno1" visibility="hidden"/>
  1933. <col ref="rgstno2" visibility="hidden"/>
  1934. <col ref="cmpycd" visibility="hidden"/>
  1935. <col ref="pkgcd" visibility="hidden"/>
  1936. <col ref="rsrvdd" visibility="hidden"/>
  1937. <col ref="rsrvno" visibility="hidden"/>
  1938. <col ref="cretno" visibility="hidden"/>
  1939. <col ref="orddeptcd" visibility="hidden"/>
  1940. <col ref="healexamflag" visibility="hidden"/>
  1941. <col ref="healexamdetlflag" visibility="hidden"/>
  1942. <col ref="remcnts" visibility="hidden"/>
  1943. <col ref="inqrprntflag" visibility="hidden"/>
  1944. <col ref="hopedd" visibility="hidden"/>
  1945. <col ref="healexamplacecd"/>
  1946. <col ref="rsltyn" visibility="hidden"/>
  1947. <script type="javascript" ev:event="ondblclick">
  1948. <![CDATA[
  1949. if(grd_acptlst.isCell(event.target) && grd_acptlst.row < grd_acptlst.rows) {
  1950. //2016/10/25 동명이인 관련 알림 팝업
  1951. fChkPatNameC(grd_acptlst.nodeset, "hngnm", grd_acptlst.valueMatrix(grd_acptlst.row, grd_acptlst.colRef("hngnm")));
  1952. //2016/10/25 동명이인 관련 알림 팝업
  1953. //grd_rsltlst.visible = false;
  1954. grp_textrslt.visible = false;
  1955. fGetRsltInfo(); //결과내역 조회
  1956. /*
  1957. if(RatioRow >=1){
  1958. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testroomnm","27");
  1959. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/reptprntgrupcd","27");
  1960. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testcd","VHAGRATIO");
  1961. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/calcscorcd","VHAGRATIO");
  1962. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testnm","A/G Ratio");
  1963. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testengnm","A/G Ratio");
  1964. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testrsltcnts",Ratio);
  1965. }
  1966. if (GlobulinRow >=1){
  1967. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testroomnm","27");
  1968. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/reptprntgrupcd","27");
  1969. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testcd","LCR109");
  1970. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/calcscorcd","LCR109");
  1971. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testnm","총단백정량");
  1972. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testengnm","Total Protein");
  1973. model.makeValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.rows+"]/testrsltcnts",Globulin);
  1974. }
  1975. */
  1976. // grd_rsltlst.rebuild();
  1977. // fgridMergeRow(grd_rsltlst); //js에 있는것 무시하고 xrw에서 다시 생성
  1978. var cnt = grd_rsltlst.rows;
  1979. var oldnm = "";
  1980. var grdnm = "";
  1981. var lt = 1;
  1982. var lb = 1;
  1983. for(var i=1; i<=cnt; i++){
  1984. if(grdnm == grd_rsltlst.valueMatrix(i, 2)){
  1985. //grd_nm.valueMatrix(i,1) = "";
  1986. } else{
  1987. grdnm = grd_rsltlst.valueMatrix(i, 2);
  1988. grd_rsltlst.mergeByFree(lt, 2, i-1, 2);
  1989. lt = i;
  1990. }
  1991. }
  1992. // fgrdImage(grd_rsltlst);
  1993. // fChkAuthTestRoom();
  1994. //grd_rsltlst.visible = true;
  1995. model.makeValue("/root/temp/grd_acptlstno", grd_acptlst.row);
  1996. //화면상단정보 설정
  1997. model.makeValue("/root/main/info/rsrvacptinfo/item/statflag", "E");
  1998. var sPid = model.getValue("/root/main/acptinfo/item/pid");
  1999. var sOrddd = model.getValue("/root/main/acptinfo/item/orddd");
  2000. var iCretno = model.getValue("/root/main/acptinfo/item/cretno");
  2001. if((sPid != "" ) && (sOrddd != "" ) && (iCretno != "" ) && (iCretno != "0")){
  2002. ahafSetScreenTopPatInfo(sPid, sOrddd, iCretno);
  2003. }
  2004. }
  2005. ]]>
  2006. </script>
  2007. <script type="javascript" ev:event="onaftersort">
  2008. <![CDATA[
  2009. grd_acptlst.gridToInstance();
  2010. ]]>
  2011. </script>
  2012. <script type="javascript" ev:event="onmousedown">
  2013. <![CDATA[
  2014. if(event.button == 3) {
  2015. if(isDataCell()) {
  2016. setPopupMenu("grd_acptlst", false, "/root/temp/popupmenu/item", "name", "func");
  2017. }
  2018. }
  2019. ]]>
  2020. </script>
  2021. <script type="javascript" ev:event="DOMFocusOut">
  2022. <![CDATA[
  2023. window.setPopupMenu(false);
  2024. ]]>
  2025. </script>
  2026. </datagrid>
  2027. <caption id="caption15" class="tit_2" style="left:5px; top:63px; width:151px; height:13px; ">대기자리스트</caption>
  2028. <line id="line8" class="line_1" style="x1:0px; y1:79px; x2:309px; y2:79px; "/>
  2029. <line id="line12" class="line_2" style="x1:314px; y1:132px; x2:1190px; y2:132px; "/>
  2030. <button id="button12" class="btn2_letter4" style="left:728px; top:86px; width:64px; height:19px; ">
  2031. <caption>진행상황</caption>
  2032. <script type="javascript" ev:event="DOMActivate">
  2033. <![CDATA[
  2034. // alert("준비중입니다.");
  2035. ]]>
  2036. </script>
  2037. </button>
  2038. <output id="opt_sex" ref="/root/main/acptinfo/item/sex" class="output_fix" style="left:862px; top:86px; width:50px; height:19px; "/>
  2039. <output id="opt_hngnm" ref="/root/main/acptinfo/item/hngnm" class="output_fix" style="left:572px; top:86px; width:153px; height:19px; "/>
  2040. <caption id="caption14" class="cell_1" style="left:314px; top:84px; width:64px; height:23px; vertical-align:middle; ">등록번호</caption>
  2041. <caption id="caption24" class="cell_1" style="left:505px; top:84px; width:64px; height:23px; vertical-align:middle; ">성명</caption>
  2042. <output id="opt_pid" ref="/root/main/acptinfo/item/pid" class="output_fix" style="left:381px; top:86px; width:120px; height:19px; "/>
  2043. <output id="output5" ref="/root/main/acptinfo/item/age" class="output_fix" style="left:915px; top:86px; width:50px; height:19px; "/>
  2044. <switch id="swt_rslt" style="left:314px; top:207px; width:876px; height:533px; ">
  2045. <case id="case_rslt" selected="true">
  2046. <line id="line13" class="line_1" style="x1:4px; y1:19px; x2:515px; y2:20px; "/>
  2047. <caption id="caption19" class="tit_2" style="left:4px; top:5px; width:159px; height:13px; ">숫자형/선택형 결과입력</caption>
  2048. <datagrid id="grd_rsltlst" nodeset="/root/main/acptinfo/rsltlst/item" caption="검사실^보고서 출력그룹^처방명칭^결과^결과^외래결과^기준^단위^처방일자^실시처방유일번호^처방번호^검사코드^결과구분^비고^공단결과^판정문구코드^inptflag^judgmark" colsep="^" colwidth="93, 91, 133, 91, 27, 119, 72, 61, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:4px; top:25px; width:513px; height:501px; ">
  2049. <col ref="testroomcd" visibility="hidden"/>
  2050. <col disabled="true" ref="reptprntgrupcd" type="combo">
  2051. <choices>
  2052. <itemset nodeset="/root/init/baseinfo/comcodelst/item">
  2053. <label ref="nm"/>
  2054. <value ref="cd"/>
  2055. </itemset>
  2056. </choices>
  2057. </col>
  2058. <col ref="testnm">
  2059. <![CDATA[W]]>
  2060. </col>
  2061. <col disabled="false" ref="testrsltcnts" type="input"/>
  2062. <col ref="judgrsltcnts" style="text-align:center; background-position:center; "/>
  2063. <col ref="outtestrsltcnts" visibility="hidden"/>
  2064. <col ref="stndval"/>
  2065. <col ref="rsltunit"/>
  2066. <col ref="prcpdd" visibility="visible"/>
  2067. <col ref="execprcpuniqno" visibility="visible"/>
  2068. <col ref="prcpno" visibility="hidden"/>
  2069. <col ref="testcd"/>
  2070. <col ref="rsltflag" visibility="hidden"/>
  2071. <col ref="remcnts" visibility="hidden"/>
  2072. <col ref="assorsltcnts" visibility="hidden"/>
  2073. <col ref="judgcd" visibility="hidden"/>
  2074. <col ref="inptflag" visibility="hidden"/>
  2075. <col ref="judgmark" visibility="hidden"/>
  2076. <script type="javascript" ev:event="onclick">
  2077. <![CDATA[
  2078. fSetRsltInptMode("N", grd_rsltlst);
  2079. model.makeValue("/root/temp/seqno", model.getValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.row+"]/execprcpuniqno"));
  2080. model.makeValue("/root/temp/prcpdd",model.getValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.row+"]/prcpdd"));
  2081. if(grd_rsltlst.col != grd_rsltlst.colRef("testrsltcnts")){
  2082. datagrid1.visible = false;
  2083. btn_close.visible=false;
  2084. }
  2085. //검사코드 setting
  2086. model.setValue("/root/send/saveout/testcd", model.getValue("/root/main/acptinfo/rsltlst/item["+grd_rsltlst.row+"]/testcd"));
  2087. ]]>
  2088. </script>
  2089. <script type="javascript" ev:event="onendedit">
  2090. <![CDATA[
  2091. // datagrid1.visible = false; //datagrid1 그리드 자동닫힘 기능 제거.
  2092. if (event.keyCode = 13){
  2093. if( (grd_rsltlst.col == 4 )) {
  2094. if( grd_rsltlst.row < 1) return ;
  2095. if( grd_rsltlst.row < grd_rsltlst.rows ) {
  2096. // grd_rsltlst.row = grd_rsltlst.row +1;
  2097. // fSetRsltInptMode("N", grd_rsltlst);
  2098. }
  2099. }
  2100. grd_rsltlst.row = grd_rsltlst.row + 1;
  2101. }
  2102. ]]>
  2103. </script>
  2104. <script type="javascript" ev:event="xforms-value-changed">
  2105. <![CDATA[
  2106. if(grd_rsltlst.col == grd_rsltlst.colRef("testrsltcnts")) {
  2107. var ccd = grd_rsltlst.valueMatrix( grd_rsltlst.row , grd_rsltlst.colRef("testrsltcnts"));
  2108. fCalcRslt(); //검사결과 자동계산 \
  2109. fSetChoiExmp(); //선택형 결과 예문등록
  2110. fSetJudgStat(); //선택형 참고치에 대한 판정등록
  2111. grd_rsltlst.valueMatrix( grd_rsltlst.row , grd_rsltlst.colRef("assorsltcnts")) = ccd;
  2112. }
  2113. ]]>
  2114. </script>
  2115. <script type="javascript" ev:event="xforms-rebuild">
  2116. <![CDATA[
  2117. fCalcRslt(); //검사결과 자동계산
  2118. ]]>
  2119. </script>
  2120. <script type="javascript" ev:event="onstartedit">
  2121. <![CDATA[
  2122. var vTestCd = model.getValue("/root/main/acptinfo/rsltlst/item[" + grd_rsltlst.row + "]/testcd");
  2123. if(model.getXPathValue("count(/root/main/acptinfo/rsltlst/itemexmp[testcd = '" + vTestCd + "'])") > 0){
  2124. model.removeNodeset("/root/temp/tempexmp/itemexmp");
  2125. model.makeNode("/root/temp/tempexmp/itemexmp");
  2126. copyNodesetType("/root/temp/tempexmp/itemexmp", "/root/main/acptinfo/rsltlst/itemexmp[testcd = '" + vTestCd + "']");
  2127. model.refresh();
  2128. datagrid1.visible = true;
  2129. btn_close.visible = true;
  2130. }else{
  2131. datagrid1.visible = false;
  2132. btn_close.visible = false;
  2133. }
  2134. ]]>
  2135. </script>
  2136. </datagrid>
  2137. <group id="grp_choi" visibility="hidden" style="left:90px; top:200px; width:295px; height:245px; ">
  2138. <caption id="caption55" class="tit_2" style="left:5px; top:5px; width:108px; height:13px; ">선택형결과</caption>
  2139. <datagrid id="grd_choilst" nodeset="/root/main/tempinfo/choilst/item3" allowselection="false" caption="V^코드^결과내용" colsep="^" colwidth="24, 14, 207" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" style="left:5px; top:23px; width:285px; height:215px; ">
  2140. <col checkvalue="Y,N" ref="sel" type="checkbox"/>
  2141. <col ref="rsltcd" visibility="hidden"/>
  2142. <col ref="rsltnm"/>
  2143. <script type="javascript" ev:event="ondblclick">
  2144. <![CDATA[
  2145. var idx = grd_choilst.row;
  2146. if( idx < 1) return ;
  2147. model.setValue("/root/main/tempinfo/choilst/item3[" + idx + "]/sel", "Y");
  2148. fAddRsltChoi();
  2149. grp_choi.visible = false;
  2150. ]]>
  2151. </script>
  2152. </datagrid>
  2153. <line id="line35" class="line_1" style="x1:5px; y1:20px; x2:290px; y2:20px; "/>
  2154. <button id="btn_choiclose" class="icon_plus" style="left:275px; top:4px; width:13px; height:15px; ">
  2155. <caption/>
  2156. <script type="javascript" ev:event="DOMActivate">
  2157. <![CDATA[
  2158. fAddRsltChoi();
  2159. grp_choi.visible = false;
  2160. ]]>
  2161. </script>
  2162. </button>
  2163. </group>
  2164. <caption id="caption2" class="tit_2" style="left:525px; top:5px; width:159px; height:13px; ">서술형 결과입력</caption>
  2165. <datagrid id="grd_rslttextlst" nodeset="/root/main/acptinfo/rsltlst/itemtext" caption="처방명칭^결과^외래결과^처방일자^실시처방유일번호^처방번호^검사코드^외래결과내역^결과구분^비고^공단결과^판정문구코드^판정문구내용^inptflag^choirslt^judgmark^refh^refl" colsep="^" colwidth="124, 185, 100, 36, 34, 18, 21, 31, 19, 32, 15, 23, 17, 33, 27, 26, 100, 100" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="100" rowsep="|" tooltip="true" style="left:520px; top:25px; width:351px; height:501px; ">
  2166. <col ref="testnm" style="left:20px; top:23px; width:124px; height:23px; "/>
  2167. <col disabled="false" ref="testrsltcnts" type="inputbutton"/>
  2168. <col ref="outtestrsltcnts" type="inputbutton" visibility="hidden"/>
  2169. <col ref="prcpdd" visibility="hidden"/>
  2170. <col ref="execprcpuniqno" visibility="hidden"/>
  2171. <col ref="prcpno" visibility="hidden"/>
  2172. <col ref="testcd" visibility="hidden"/>
  2173. <col ref="outtestrsltcnts" visibility="hidden"/>
  2174. <col ref="rsltflag" visibility="hidden"/>
  2175. <col ref="remcnts" visibility="hidden"/>
  2176. <col ref="assorsltcnts" visibility="hidden"/>
  2177. <col ref="judgcd" visibility="hidden"/>
  2178. <col ref="judgrsltcnts" visibility="hidden"/>
  2179. <col ref="inptflag" visibility="hidden"/>
  2180. <col ref="judgmark" visibility="hidden"/>
  2181. <col ref="judgmark" visibility="hidden"/>
  2182. <col ref="refh" visibility="hidden"/>
  2183. <col ref="refl" visibility="hidden"/>
  2184. <script type="javascript" ev:event="onbuttonclick">
  2185. <![CDATA[
  2186. fSetRsltInptMode("T", grd_rslttextlst);
  2187. ]]>
  2188. </script>
  2189. <script type="javascript" ev:event="onclick">
  2190. <![CDATA[
  2191. model.makeValue("/root/temp/seqno",model.getValue("/root/main/acptinfo/rsltlst/itemtext[" + grd_rslttextlst.row+"]/execprcpuniqno"));
  2192. model.makeValue("/root/temp/prcpdd",model.getValue("/root/main/acptinfo/rsltlst/itemtext[" + grd_rslttextlst.row+"]/prcpdd"));
  2193. //검사코드 setting
  2194. model.setValue("/root/send/saveout/testcd", model.getValue("/root/main/acptinfo/rsltlst/itemtext[" + grd_rslttextlst.row+"]/testcd"));
  2195. ]]>
  2196. </script>
  2197. </datagrid>
  2198. <group id="grp_textrslt" visibility="hidden" style="left:5px; top:45px; width:513px; height:470px; ">
  2199. <datagrid id="grd_rsltexmplst" nodeset="/root/main/tempinfo/choilst/item3" allowselection="false" caption="코드^결과내용" colsep="^" colwidth="17, 234" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" tooltip="true" style="left:5px; top:285px; width:500px; height:180px; ">
  2200. <col ref="rsltcd" visibility="hidden"/>
  2201. <col ref="rsltnm"/>
  2202. <script type="javascript" ev:event="ondblclick">
  2203. <![CDATA[
  2204. fSetRsltExmpCnts();
  2205. ]]>
  2206. </script>
  2207. </datagrid>
  2208. <line id="line1" class="line_1" style="x1:5px; y1:275px; x2:505px; y2:275px; "/>
  2209. <caption id="caption1" class="tit_2" style="left:5px; top:260px; width:108px; height:13px; ">결과예문</caption>
  2210. <caption id="caption58" class="tit_2" style="left:5px; top:5px; width:108px; height:14px; ">서술형결과</caption>
  2211. <textarea id="tar_textrslt" ref="/root/main/tempinfo/rslttext/rsltcnts" style="left:5px; top:25px; width:503px; height:440px; "/>
  2212. <output id="opt_rsltidx" ref="/root/main/tempinfo/rslttext/rslt_idx" class="output_fix" visibility="hidden" style="left:80px; top:5px; width:36px; height:19px; "/>
  2213. <output id="opt_rsltcol" ref="/root/main/tempinfo/rslttext/rslt_col" class="output_fix" visibility="hidden" style="left:125px; top:5px; width:36px; height:19px; "/>
  2214. <button id="btn_rsltsave" class="btn2_letter2" style="left:421px; top:5px; width:42px; height:19px; ">
  2215. <caption>저장</caption>
  2216. <script type="javascript" ev:event="DOMActivate">
  2217. <![CDATA[
  2218. if( model.getValue("/root/main/tempinfo/rslttext/rslt_col") == col_textrslt ){
  2219. var idx = model.getValue("/root/main/tempinfo/rslttext/rslt_idx") ;
  2220. model.setValue("/root/main/acptinfo/rsltlst/itemtext["+ idx +"]/testrsltcnts", tar_textrslt.currentText );
  2221. if( grd_rslttextlst.rowStatus(idx) == 0 ){
  2222. grd_rslttextlst.rowStatus(idx) = 2;
  2223. }
  2224. }
  2225. grp_textrslt.visible = false;
  2226. ]]>
  2227. </script>
  2228. </button>
  2229. <button id="btn_rsltclose" class="btn2_letter2" style="left:466px; top:5px; width:42px; height:19px; ">
  2230. <caption>취소</caption>
  2231. <script type="javascript" ev:event="DOMActivate">
  2232. <![CDATA[
  2233. grp_textrslt.visible = false;
  2234. ]]>
  2235. </script>
  2236. </button>
  2237. <button id="btn_selrsltexmpcnts" class="btn2_letter4" visibility="hidden" style="left:354px; top:5px; width:64px; height:19px; ">
  2238. <caption>결과예문</caption>
  2239. <script type="javascript" ev:event="DOMActivate">
  2240. <![CDATA[
  2241. //fGetRsltExmpCnts();
  2242. modal("SPAHR00400");
  2243. if(model.getValue("/root/temp/okflag") == "ok"){
  2244. if(model.getValue("/root/main/tempinfo/rslttext/rsltcnts") == ""){
  2245. model.setValue("/root/main/tempinfo/rslttext/rsltcnts", model.getValue("/root/main/tempinfo/rslttext/rsltcnts") + model.getValue("/root/temp/value"));
  2246. }else{
  2247. model.setValue("/root/main/tempinfo/rslttext/rsltcnts", model.getValue("/root/main/tempinfo/rslttext/rsltcnts") + "\n" + model.getValue("/root/temp/value"));
  2248. }
  2249. model.refresh();
  2250. }
  2251. ]]>
  2252. </script>
  2253. </button>
  2254. <output id="opt_testcd" ref="/root/main/tempinfo/rslttext/rslt_testcd" class="output_fix" visibility="hidden" style="left:170px; top:5px; width:36px; height:19px; "/>
  2255. </group>
  2256. <line id="line3" class="line_1" style="x1:522px; y1:19px; x2:870px; y2:20px; "/>
  2257. </case>
  2258. <case id="case_inqr">
  2259. <datagrid id="grd_inqrlst" nodeset="/root/main/acptinfo/inqrlst/item" caption="문진코드^문진내용^답안선택^답안내역^비고^답안유형^문진구분" colsep="^" colwidth="83, 337, 63, 87, 100, 100, 100" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:5px; top:28px; width:864px; height:497px; ">
  2260. <col ref="inqrcd"/>
  2261. <col ref="inqrnm"/>
  2262. <col ref="answcd" type="input"/>
  2263. <col ref="answcnts"/>
  2264. <col class="gridinput" ref="remcnts" type="input"/>
  2265. <col disabled="true" ref="answflag" type="combo">
  2266. <choices>
  2267. <itemset nodeset="/root/init/baseinfo/rslttypelst/A0066">
  2268. <label ref="cdnm"/>
  2269. <value ref="cdid"/>
  2270. </itemset>
  2271. </choices>
  2272. </col>
  2273. <col disabled="true" ref="inqrflag" type="combo">
  2274. <choices>
  2275. <itemset nodeset="/root/init/baseinfo/inqrflag/A0106">
  2276. <label ref="cdnm"/>
  2277. <value ref="cdid"/>
  2278. </itemset>
  2279. </choices>
  2280. </col>
  2281. <script type="javascript" ev:event="onclick">
  2282. <![CDATA[
  2283. fMoveInqrFocus(false);
  2284. ]]>
  2285. </script>
  2286. <script type="javascript" ev:event="onendedit">
  2287. <![CDATA[
  2288. if( event.keyCode != 13 ) return ;
  2289. fMoveInqrFocus(true);
  2290. ]]>
  2291. </script>
  2292. </datagrid>
  2293. <group id="grp_inqrans" visibility="hidden" style="left:175px; top:70px; width:295px; height:215px; ">
  2294. <caption id="caption56" class="tit_2" style="left:5px; top:10px; width:108px; height:13px; ">문진선택답안</caption>
  2295. <datagrid id="grd_inqranslst" nodeset="/root/main/tempinfo/anslst/item" visibility="hidden" allowselection="false" caption="코드^결과내용^비고입력여부" colsep="^" colwidth="49, 194, 100" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" style="left:260px; top:8px; width:10px; height:17px; ">
  2296. <col ref="answcd"/>
  2297. <col ref="answcnts"/>
  2298. <col ref="answcnts" visibility="hidden"/>
  2299. <script type="javascript" ev:event="ondblclick">
  2300. <![CDATA[
  2301. fSetInqrAns();
  2302. grp_inqrans.visible = false;
  2303. fMoveInqrFocus(true);
  2304. ]]>
  2305. </script>
  2306. </datagrid>
  2307. <line id="line36" class="line_1" style="x1:5px; y1:25px; x2:290px; y2:25px; "/>
  2308. <button id="btn_ansclose" class="icon_plus" style="left:275px; top:4px; width:13px; height:15px; ">
  2309. <caption/>
  2310. <script type="javascript" ev:event="DOMActivate">
  2311. <![CDATA[
  2312. grp_inqrans.visible = false;
  2313. ]]>
  2314. </script>
  2315. </button>
  2316. <input id="ipt_answcd" ref="/root/main/tempinfo/answcd" class="input_default" style="left:120px; top:5px; width:140px; height:19px; ">
  2317. <script type="javascript" ev:event="onkeyup">
  2318. <![CDATA[
  2319. if( event.keyCode != 13 ) return ;
  2320. var answcd = ipt_answcd.currentText ;
  2321. if( answcd == "" ) return ;
  2322. var idx = grd_inqranslst.findRow( answcd, 1, 1, false, true );
  2323. if(idx < 1) return ;
  2324. grd_inqranslst.row = idx;
  2325. fSetInqrAns();
  2326. grp_inqrans.visible = false;
  2327. fMoveInqrFocus(true);
  2328. ]]>
  2329. </script>
  2330. </input>
  2331. <select id="checkbox2" ref="/root/temp/rsltvalue" overflow="visible" appearance="full" style="left:5px; top:30px; width:275px; height:145px; border-style:none; ">
  2332. <choices>
  2333. <itemset nodeset="/root/main/tempinfo/anslst/item">
  2334. <label ref="answcnts"/>
  2335. <value ref="answcd"/>
  2336. </itemset>
  2337. </choices>
  2338. </select>
  2339. <button id="button11" class="btn4_letter2" visibility="visible" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:220px; top:185px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  2340. <caption>확인</caption>
  2341. <script type="javascript" ev:event="DOMActivate">
  2342. <![CDATA[
  2343. fSetInqrAns();
  2344. grp_inqrans.visible = false;
  2345. ]]>
  2346. </script>
  2347. </button>
  2348. </group>
  2349. <line id="line2" class="line_1" style="x1:5px; y1:24px; x2:869px; y2:24px; "/>
  2350. <caption id="caption4" class="tit_2" style="left:5px; top:8px; width:151px; height:13px; ">종합건진문진</caption>
  2351. <select1 id="combo2" ref="/root/main/acptinfo/item/inqrprntflag" appearance="minimal" style="left:769px; top:3px; width:100px; height:19px; ">
  2352. <choices>
  2353. <item>
  2354. <label>미출력</label>
  2355. <value>N</value>
  2356. </item>
  2357. <item>
  2358. <label>출력</label>
  2359. <value>P</value>
  2360. </item>
  2361. <item>
  2362. <label>수령</label>
  2363. <value>A</value>
  2364. </item>
  2365. <item>
  2366. <label>완료</label>
  2367. <value>E</value>
  2368. </item>
  2369. </choices>
  2370. </select1>
  2371. </case>
  2372. </switch>
  2373. <button id="btn_inqr" class="btn_sw" group="tab" style="left:398px; top:186px; width:66px; height:22px; ">
  2374. <caption>문진표</caption>
  2375. <script type="javascript" ev:event="DOMActivate">
  2376. <![CDATA[
  2377. fGetInqrCdList();
  2378. btn_inqr.selected = true;
  2379. model.toggle("case_inqr");
  2380. ]]>
  2381. </script>
  2382. </button>
  2383. <button id="btn_rslt" class="btn_sw" group="tab" style="left:314px; top:186px; width:84px; height:22px; ">
  2384. <caption>검사결과</caption>
  2385. <toggle case="case_rslt" ev:event="onclick"/>
  2386. </button>
  2387. <button id="button2" class="btn5_letter4" visibility="hidden" style="left:1060px; top:187px; width:64px; height:19px; ">
  2388. <caption>결과저장</caption>
  2389. <script type="javascript" ev:event="DOMActivate">
  2390. <![CDATA[
  2391. if( messageBox("결과내역을 ", "Q002") == 6 ) {
  2392. fInitSaveData(); //공통 저장정보관련 초기화
  2393. fSaveRslt("R"); //입력결과 저장 후 조회
  2394. gridMergeRow(grd_rsltlst);
  2395. fgrdImage(grd_rsltlst)
  2396. grd_rsltlst.clearStatus();
  2397. }
  2398. ]]>
  2399. </script>
  2400. </button>
  2401. <button id="btn_savepatinfo" class="btn5_letter4" style="left:1125px; top:187px; width:64px; height:19px; ">
  2402. <caption>문진저장</caption>
  2403. <script type="javascript" ev:event="DOMActivate">
  2404. <![CDATA[
  2405. if(messageBox("문진을 ", "Q002") == 6){
  2406. fInitSaveData(); //공통 저장정보관련 초기화
  2407. fSaveRslt("I"); //입력결과 저장 후 조회
  2408. gridMergeRow(grd_rsltlst);
  2409. fgrdImage(grd_rsltlst);
  2410. }
  2411. ]]>
  2412. </script>
  2413. </button>
  2414. <button id="button4" class="btn2_letter4" style="left:995px; top:187px; width:64px; height:19px; ">
  2415. <caption>CDIS연동</caption>
  2416. <script type="javascript" ev:event="DOMActivate">
  2417. <![CDATA[
  2418. fClickCDISResultList();
  2419. ]]>
  2420. </script>
  2421. </button>
  2422. <button id="button6" class="btn2_letter5" style="left:919px; top:187px; width:75px; height:19px; ">
  2423. <caption>PACS연동</caption>
  2424. <script type="javascript" ev:event="DOMActivate">
  2425. <![CDATA[
  2426. // fClickPACSOrdPatResultList(model.getValue("/root/main/acptinfo/item/orddd"),model.getValue("/root/main/acptinfo/item/pid"));
  2427. // fClickPACSOrdPatResultList(grd_mainserious);
  2428. // zepfpacsAll(model.getValue("/root/main/acptinfo/item/orddd"),model.getValue("/root/main/acptinfo/item/pid"));
  2429. if(grd_acptlst.row == 0) return;
  2430. if(model.getValue("/root/main/acptinfo/item/pid") == ""){
  2431. messageBox("등록번호를 입력하세요.","I999");
  2432. return true;
  2433. }else{
  2434. // fClickPACSOrdPatResultList(grd_acptlst);
  2435. var prcpdd = model.getValue("/root/temp/prcpdd");
  2436. var execprcpuniqno = model.getValue("/root/temp/seqno");
  2437. var pid = model.getValue("/root/main/acptinfo/item/pid");
  2438. var pacsorderid = prcpdd+execprcpuniqno;
  2439. zepfpacsAll(pacsorderid, pid);
  2440. }
  2441. ]]>
  2442. </script>
  2443. </button>
  2444. <select id="checkbox1" ref="/root/init/send/srchasischk" overflow="visible" appearance="full" style="left:820px; top:188px; width:100px; height:20px; border-style:none; ">
  2445. <choices>
  2446. <item>
  2447. <label>AS-IS 데이터</label>
  2448. <value>Y</value>
  2449. </item>
  2450. </choices>
  2451. </select>
  2452. <button id="btn_excsave" class="btn2_letter4" style="left:245px; top:59px; width:64px; height:19px; ">
  2453. <caption>엑셀저장</caption>
  2454. <script type="javascript" ev:event="DOMActivate">
  2455. <![CDATA[
  2456. var fileName = window.fileDialog("save", ",", false, "", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  2457. if (fileName != "") {
  2458. grd_acptlst.saveExcel(fileName);
  2459. }
  2460. ]]>
  2461. </script>
  2462. </button>
  2463. <datagrid id="datagrid1" nodeset="/root/temp/tempexmp/itemexmp" visibility="hidden" allowselection="false" caption="^코드^결과내용" colsep="^" colwidth="18, 30, 265" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" tooltip="true" style="left:835px; top:285px; width:350px; height:360px; ">
  2464. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  2465. <col ref="rsltcd"/>
  2466. <col ref="rsltnm"/>
  2467. <script type="javascript" ev:event="onclick">
  2468. <![CDATA[
  2469. /* 닫기버튼 클릭시 이벤트 타도록 수정(2016/08/16 이정택)
  2470. //그리드의 셀 이외의 곳을 클릭하면 종료한다.
  2471. if(!eval(datagrid1.iscell(event.target))) { datagrid1.visible = false; return false;}
  2472. //그리드의 헤더부분을 클릭하면 종료한다.
  2473. if(eval(datagrid1.row) < eval(datagrid1.fixedRows)) { datagrid1.visible = false; return false;}
  2474. // fSetRsltExmpCnts(); //안되는거 같아서 주석 처리함. 20091219 이성인
  2475. var rowcnt = grd_rsltlst.row;
  2476. var totrowcnt = grd_rsltlst.rows;
  2477. if(rowcnt != totrowcnt-1){
  2478. rowcnt = rowcnt - 1;
  2479. }
  2480. model.setValue("/root/main/acptinfo/rsltlst/item[" + (rowcnt)+ "]/testrsltcnts" , model.getValue("/root/temp/tempexmp/itemexmp[" + datagrid1.row + "]/rsltnm" ));
  2481. //grd_rsltlst.row - 1 자동으로 다음칸으로 넘어가서.....
  2482. //20100729 JHP 결과입력시 예문을 통한 입력시에는 결과입력그리드에 직접입력형식이 아니어서 rowstastus와 xforms-value-changed를 하게끔 강제 실행해야한다. 시작
  2483. grd_rsltlst.dispatch("xforms-value-changed");
  2484. grd_rsltlst.rowStatus(rowcnt) = "2";
  2485. //20100729 JHP 결과입력시 예문을 통한 입력시에는 결과입력그리드에 직접입력형식이 아니어서 rowstastus와 xforms-value-changed를 하게끔 강제 실행해야한다. 끝
  2486. //alert( model.getValue("/root/temp/tempexmp/itemexmp[" + datagrid1.row + "]/rsltcd" ));
  2487. datagrid1.visible = false;
  2488. */
  2489. ]]>
  2490. </script>
  2491. </datagrid>
  2492. <button id="btn_smapp" class="btn_sw" visibility="hidden" group="tab" style="left:464px; top:186px; width:80px; height:22px; ">
  2493. <caption>서술형매핑</caption>
  2494. <script type="javascript" ev:event="DOMActivate">
  2495. <![CDATA[
  2496. var sValue = model.getValue("/root/init/send/srchroomcd");
  2497. setParameter("SPAHB03900_PARM",sValue);
  2498. open("SPAHB03900", "2", "", "", "popup", grd_acptlst.attribute("nodeset") + "[" + grd_acptlst.row + "]", "/root/temp" );
  2499. ]]>
  2500. </script>
  2501. </button>
  2502. <button id="button7" class="btn2_letter4" style="left:1060px; top:187px; width:64px; height:19px; ">
  2503. <caption>CDIS전체</caption>
  2504. <script type="javascript" ev:event="DOMActivate">
  2505. <![CDATA[
  2506. fClickCDISResultListAll();
  2507. ]]>
  2508. </script>
  2509. </button>
  2510. <button id="button8" class="btn5_letter9" style="left:1071px; top:59px; width:119px; height:19px; ">
  2511. <caption>전체서술형결과연동</caption>
  2512. <script type="javascript" ev:event="DOMActivate">
  2513. <![CDATA[
  2514. var Stestcd = model.getValue("/root/send/saveout/testcd");
  2515. if(Stestcd == ""){
  2516. alert("처방코드를 선택하세요!");
  2517. return;
  2518. }else{
  2519. model.setValue("/root/send/saveout/testcd", Stestcd);
  2520. fGetAllOutRslt();
  2521. gridMergeRow(grd_rsltlst);
  2522. fgrdImage(grd_rsltlst)
  2523. }
  2524. ]]>
  2525. </script>
  2526. </button>
  2527. <button id="button5" class="btn5_letter7" style="left:973px; top:59px; width:97px; height:19px; ">
  2528. <caption>서술형결과연동</caption>
  2529. <script type="javascript" ev:event="DOMActivate">
  2530. <![CDATA[
  2531. fGetOutRslt();
  2532. //gridMergeRow(grd_rsltlst);
  2533. //fgrdImage(grd_rsltlst)
  2534. ]]>
  2535. </script>
  2536. </button>
  2537. <button id="button1" class="btn5_letter8" visibility="hidden" style="left:657px; top:59px; width:108px; height:19px; ">
  2538. <caption>전체외래결과연동</caption>
  2539. <script type="javascript" ev:event="DOMActivate">
  2540. <![CDATA[
  2541. model.setValue("/root/send/saveout/testcd", "");
  2542. fGetAllOutRslt();
  2543. gridMergeRow(grd_rsltlst);
  2544. fgrdImage(grd_rsltlst);
  2545. ]]>
  2546. </script>
  2547. </button>
  2548. <button id="btn_getoutrslt" class="btn5_letter6" visibility="hidden" style="left:766px; top:59px; width:86px; height:19px; ">
  2549. <caption>외래결과연동</caption>
  2550. <script type="javascript" ev:event="DOMActivate">
  2551. <![CDATA[
  2552. model.setValue("/root/send/saveout/testcd", "");
  2553. fGetOutRslt();
  2554. gridMergeRow(grd_rsltlst);
  2555. fgrdImage(grd_rsltlst);
  2556. ]]>
  2557. </script>
  2558. </button>
  2559. <button id="button9" class="btn5_letter9" style="left:853px; top:59px; width:119px; height:19px; ">
  2560. <caption>숫자선택형결과연동</caption>
  2561. <script type="javascript" ev:event="DOMActivate">
  2562. <![CDATA[
  2563. model.setValue("/root/send/saveout/testcd", "");
  2564. fGetAhrmRslt();
  2565. gridMergeRow(grd_rsltlst);
  2566. // fgrdImage(grd_rsltlst);
  2567. ]]>
  2568. </script>
  2569. </button>
  2570. <button id="btn_close" class="btn2_letter2" visibility="hidden" style="left:1125px; top:288px; width:42px; height:19px; ">
  2571. <caption>닫기</caption>
  2572. <script type="javascript" ev:event="DOMActivate">
  2573. <![CDATA[
  2574. ]]>
  2575. </script>
  2576. <script type="javascript" ev:event="onclick">
  2577. <![CDATA[
  2578. var rowcnt = grd_rsltlst.row;
  2579. var totrowcnt = grd_rsltlst.rows;
  2580. if(rowcnt != totrowcnt-1){
  2581. rowcnt = rowcnt - 1;
  2582. }
  2583. var tmpmsg = "";
  2584. var totrow= getNodesetCount("/root/temp/tempexmp/itemexmp");
  2585. for(var i=1; i<=totrow; i++){
  2586. if(model.getValue("/root/temp/tempexmp/itemexmp['" + i + "']/chk")=='Y'){
  2587. tmpmsg += model.getValue("/root/temp/tempexmp/itemexmp['" + i + "']/rsltnm") + " ";
  2588. }
  2589. }
  2590. model.makeValue("/root/main/acptinfo/rsltlst/item[" + (rowcnt)+ "]/testrsltcnts" , tmpmsg);
  2591. //20100729 JHP 결과입력시 예문을 통한 입력시에는 결과입력그리드에 직접입력형식이 아니어서 rowstastus와 xforms-value-changed를 하게끔 강제 실행해야한다. 시작
  2592. grd_rsltlst.dispatch("xforms-value-changed");
  2593. grd_rsltlst.rowStatus(rowcnt) = "2";
  2594. //20100729 JHP 결과입력시 예문을 통한 입력시에는 결과입력그리드에 직접입력형식이 아니어서 rowstastus와 xforms-value-changed를 하게끔 강제 실행해야한다. 끝
  2595. //alert( model.getValue("/root/temp/tempexmp/itemexmp[" + datagrid1.row + "]/rsltcd" ));
  2596. datagrid1.visible = false;
  2597. btn_close.visible = false;
  2598. ]]>
  2599. </script>
  2600. </button>
  2601. </group>
  2602. <group id="grp_btn" style="left:0px; top:757px; width:1195px; height:27px; ">
  2603. <button id="save" class="btn4_letter2" style="left:1137px; top:4px; width:56px; height:22px; ">
  2604. <caption>저장</caption>
  2605. <script type="javascript" ev:event="DOMActivate">
  2606. <![CDATA[
  2607. //fSaveColgRslt();
  2608. if(messageBox("입력정보를", "Q002") == 6){
  2609. fInitSaveData(); //공통 저장정보관련 초기화
  2610. fSaveCmts(); //추가정보 저장
  2611. fSaveRslt("A"); //입력결과 저장 후 조회
  2612. /*
  2613. fGetRsltPatList(); //결과입력대상자 가져오기
  2614. idx=model.getValue("/root/temp/grd_acptlstno");
  2615. idx++;
  2616. grd_acptlst.row=idx;
  2617. model.setFocus("grd_acptlst.row");
  2618. model.makeValue("/root/temp/grd_acptlstno", grd_acptlst.row);
  2619. fGetRsltInfo(); //결과내역 조회
  2620. */
  2621. }
  2622. ]]>
  2623. </script>
  2624. </button>
  2625. <button id="btn_colgjudg" class="btn3_letter6" style="left:1px; top:5px; width:80px; height:22px; ">
  2626. <caption>종합판정관리</caption>
  2627. <script type="javascript" ev:event="DOMActivate">
  2628. <![CDATA[
  2629. clearParameter("SMAHR00500_PARAM1");
  2630. clearParameter("SMAHR00500_PARAM2");
  2631. setParameter("SMAHR00500_PARAM1", model.getValue("/root/main/acptlst/item[" + grd_acptlst.row + "]/healexamflag"));
  2632. setParameter("SMAHR00500_PARAM2", model.getValue("/root/main/acptlst/item[" + grd_acptlst.row + "]/pid"));
  2633. modal("SMAHR00500");
  2634. ]]>
  2635. </script>
  2636. </button>
  2637. <button id="btn_outrsltview" class="btn3_letter6" style="left:108px; top:5px; width:104px; height:22px; ">
  2638. <caption>통합검사결과</caption>
  2639. <script type="javascript" ev:event="DOMActivate">
  2640. <![CDATA[
  2641. //ahafOpenRsltView(opt_pid.attribute("ref") );
  2642. modal("SMAER00800","","","","",opt_pid.attribute("ref"),"/root/send/data/singdata/srchpid");
  2643. ]]>
  2644. </script>
  2645. </button>
  2646. <button id="button3" class="btn3_letter4" style="left:215px; top:5px; width:104px; height:22px; ">
  2647. <caption>통합기록</caption>
  2648. <script type="javascript" ev:event="DOMActivate">
  2649. <![CDATA[
  2650. modal("SMMRI00400","","","","","","");
  2651. ]]>
  2652. </script>
  2653. </button>
  2654. <button id="btn_rsltcmpl" class="btn4_letter4" style="left:1054px; top:4px; width:80px; height:22px; ">
  2655. <caption>결과완료</caption>
  2656. <script type="javascript" ev:event="DOMActivate">
  2657. <![CDATA[
  2658. var vRsrvdd = model.getValue("/root/main/acptinfo/item/rsrvdd");
  2659. var vRsrvno = model.getValue("/root/main/acptinfo/item/rsrvno");
  2660. var vOrddd = model.getValue("/root/main/acptinfo/item/orddd");
  2661. var vCretno = model.getValue("/root/main/acptinfo/item/cretno");
  2662. var vPid = model.getValue("/root/main/acptinfo/item/pid");
  2663. //중복 결과완료 처리 체크
  2664. if(vPid != ""){
  2665. var nRow = grd_acptlst.findRow(vPid, 1, grd_acptlst.colRef("pid"));
  2666. if(grd_acptlst.valueMatrix(nRow, grd_acptlst.colRef("rsltyn")) == "Y"){
  2667. alert("이미 결과완료 처리된 대기자입니다.");
  2668. return;
  2669. }
  2670. if(grd_acptlst.valueMatrix(nRow, grd_acptlst.colRef("statflag")) == "H" || grd_acptlst.valueMatrix(nRow, grd_acptlst.colRef("statflag")) == "I"){
  2671. alert("판정대기/판정완료 상태는 결과완료를 할 수 없습니다.");
  2672. return;
  2673. }
  2674. }
  2675. if(messageBox("결과완료를 ", "Q004") == 6){
  2676. if((vRsrvdd == "" ) || (vRsrvno == "") || (vPid == "") || (vOrddd == "") || (vCretno == "")){
  2677. messageBox("건진정보가", "I004");
  2678. return;
  2679. }
  2680. fInitSaveData(); //공통 저장정보관련 초기화
  2681. fSaveCmts(); //추가정보저장
  2682. fSaveRslt("A"); //입력결과 저장 후 조회
  2683. model.makeValue("/root/send/saverslt/healexamflag", fGetHealExamFlag());
  2684. model.makeValue("/root/send/saverslt/healexamdetlflag", model.getValue("/root/init/send/srchhealexamdetlflag"));
  2685. model.makeValue("/root/send/saverslt/rsrvdd", vRsrvdd);
  2686. model.makeValue("/root/send/saverslt/rsrvno", vRsrvno);
  2687. model.makeValue("/root/send/saverslt/pid", vPid);
  2688. if(submit("TXAHR00204")){
  2689. fGetRsltPatList(); //결과입력대상자 가져오기
  2690. idx = model.getValue("/root/temp/grd_acptlstno");
  2691. grd_acptlst.row = idx;
  2692. model.setFocus("grd_acptlst.row");
  2693. model.makeValue("/root/temp/grd_acptlstno", grd_acptlst.row);
  2694. fGetRsltInfo(); //결과내역 조회
  2695. gridMergeRow(grd_rsltlst);
  2696. model.dispatch("DOMActivate");
  2697. }
  2698. }
  2699. ]]>
  2700. </script>
  2701. </button>
  2702. <button id="button10" class="btn4_letter8" style="left:922px; top:4px; width:128px; height:22px; ">
  2703. <caption>결과상태로 변경</caption>
  2704. <script type="javascript" ev:event="DOMActivate">
  2705. <![CDATA[
  2706. var vRsrvdd = model.getValue("/root/main/acptinfo/item/rsrvdd");
  2707. var vRsrvno = model.getValue("/root/main/acptinfo/item/rsrvno");
  2708. var vOrddd = model.getValue("/root/main/acptinfo/item/orddd");
  2709. var vCretno = model.getValue("/root/main/acptinfo/item/cretno");
  2710. var vPid = model.getValue("/root/main/acptinfo/item/pid");
  2711. //중복 결과완료 처리 체크
  2712. // if(vPid != ""){
  2713. // var nRow = grd_acptlst.findRow(vPid, 1, grd_acptlst.colRef("pid"));
  2714. // if(grd_acptlst.valueMatrix(nRow, grd_acptlst.colRef("rsltyn")) == "Y"){
  2715. // alert("이미 결과완료 처리된 대기자입니다.");
  2716. // return;
  2717. // }
  2718. // if(grd_acptlst.valueMatrix(nRow, grd_acptlst.colRef("statflag")) == "H" || grd_acptlst.valueMatrix(nRow, grd_acptlst.colRef("statflag")) == "I"){
  2719. // alert("판정대기/판정완료 상태는 결과완료를 할 수 없습니다.");
  2720. // return;
  2721. // }
  2722. // }
  2723. if(messageBox("결과상태로", "Q012") == 6){
  2724. if((vRsrvdd == "" ) || (vRsrvno == "") || (vPid == "") || (vOrddd == "") || (vCretno == "")){
  2725. messageBox("건진정보가 ", "I004");
  2726. return ;
  2727. }
  2728. fInitSaveData(); //공통 저장정보관련 초기화
  2729. // fSaveRslt("A"); //입력결과 저장 후 조회
  2730. model.makeValue("/root/send/change/changeinfo/healexamflag" , m_vHealexamflag);
  2731. model.makeValue("/root/send/change/changeinfo/rsrvdd" , vRsrvdd);
  2732. model.makeValue("/root/send/change/changeinfo/rsrvno" , vRsrvno);
  2733. model.makeValue("/root/send/change/changeinfo/statflag" , "G");
  2734. model.makeValue("/root/send/change/changeinfo/rsltyn" , "N");
  2735. if(submit("TXAHR02502")){
  2736. messageBox("결과상태 변경이 ", "I001");
  2737. fGetRsltPatList(); //결과입력대상자 가져오기
  2738. idx = model.getValue("/root/temp/grd_acptlstno");
  2739. grd_acptlst.row = idx;
  2740. model.setFocus("grd_acptlst.row");
  2741. model.makeValue("/root/temp/grd_acptlstno", grd_acptlst.row);
  2742. fGetRsltInfo(); //결과내역 조회
  2743. gridMergeRow(grd_rsltlst);
  2744. model.dispatch("DOMActivate");
  2745. }else{
  2746. messageBox("결과상태 변경이 ", "E009");
  2747. }
  2748. }
  2749. ]]>
  2750. </script>
  2751. </button>
  2752. </group>
  2753. <script type="javascript" ev:event="onkeydown">
  2754. <![CDATA[
  2755. //F7 저장 단축키
  2756. if(event.keyCode == 118) {
  2757. if(grd_acptlst.row < 0) {
  2758. messageBox("대기자를","C002");
  2759. }else {
  2760. save.dispatch("DOMActivate");
  2761. }
  2762. }
  2763. //F9 다음 사람 단축키
  2764. if(event.keyCode == 120) {
  2765. if(grd_acptlst.row < 0) {
  2766. grd_acptlst.row = 1;
  2767. grd_acptlst.dispatch("onclick");
  2768. }else if(grd_acptlst.row == grd_acptlst.rows -1) {
  2769. messageBox("다음 대기자가","I004");
  2770. return;
  2771. }else {
  2772. grd_acptlst.row = grd_acptlst.row + 1;
  2773. grd_acptlst.dispatch("onclick");
  2774. }
  2775. }
  2776. //F10 다음 검사 단축키
  2777. if(event.keyCode == 121) {
  2778. if(grd_rsltlst.row < 0) {
  2779. grd_rsltlst.row = 1;
  2780. }else if(grd_rsltlst.row == grd_rsltlst.rows - 1){
  2781. messageBox("다음 검사내역이","I004");
  2782. }else {
  2783. grd_rsltlst.row = grd_rsltlst.row + 1;
  2784. }
  2785. if(!grd_rsltlst.isReadOnly(grd_rsltlst.row , grd_rsltlst.colRef("testrsltcnts"))) {
  2786. grd_rsltlst.editCell();
  2787. }
  2788. }
  2789. ]]>
  2790. </script>
  2791. </xhtml:body>
  2792. </xhtml:html>